Тёмный

Передача данных при помощи Closures, Delegation (Swift 5) 

SwiftBook
Подписаться 18 тыс.
Просмотров 12 тыс.
50% 1

Приветствую вас, друзья!
Сталкивались ли вы с такой проблемой (или задумывались о том), как передать информацию из контроллера в предыдущий контроллер или как передать информацию из ячейки в контроллер и т.п.?
В общем, когда метод prepare for segue или instantiate view controller не могут нам помочь?
На помощь приходят communication patterns, в частности, completion handlers и delegates and protocols, о них и пойдет речь. Так же я расскажу, почему не стоит применять распространенный паттерн NotificationCenter в большинстве случаев. Тонкости реализации completion handlers и delegates & protocols мы рассмотрим на примере приложения "Матрица". Мы будем выбирать синюю или красную таблетку и, в зависимости от выбранной капсулы, наш стартовый экран будет меняться.
Поехали!
Проекты: github.com/Iva...
Подробнее об изучении Swift вы можете узнать на нашем сайте:
swiftbook.org/
Наш форум, где вы всегда можете задать ваши вопросы:
forum.swiftboo...
Присоединяйтесь к нашей группе в "ВКонтакте":
swiftbook
Присоединяйтесь к нашей группе в "facebook":
/ swiftbook.ru
Мы в telegram:
t.me/swiftbook...
Instagram: Swiftbook_

Опубликовано:

 

8 сен 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 21   
@user-iy9ns3jg7v
@user-iy9ns3jg7v 5 месяцев назад
Спасибо большое, но для новичков пример с замыканиями не очень хорош тем, что он из-за особенностей работы сегвеев и сторибордов не показывает правильную последовательность работы Объясню - сначала отрабатывает метод prepare for segue, создается экземпляр СелектВьюКонтроллера, и объявляется замыкание, которое правильно читать так: КОГДА придут данные (текст и картинка), ТОГДА положить эти данные в свойства класса. А когда отрабатывает тап по экрану, вызывается замыкание, которое объявлено чуть выше. Меня понятие этого сильно затормозило, может кому-то пригодится Ну то есть мы можем объявлять и переопределять замыкание по несколько раз в зависимости от того, какое поведение нам нужно. С методами так мы сделать не можем Если неправ - можете поправить
@Constantine1975
@Constantine1975 4 года назад
Спасибо большое - было интересно и познавательно!
@watafakaya
@watafakaya Год назад
Спасибо вам, очень доступно и легко для понимания
@ivanmaeplan
@ivanmaeplan 4 года назад
спасибо за видео, супер!
@eduardoanny
@eduardoanny 4 года назад
Рады стараться)
@itananas
@itananas Год назад
Большое спасибо
@stolenhen
@stolenhen 4 года назад
Хотелось бы без сториборда просто кодом, но за видос человеческое спасибо!
@user-sy2vu1bm6h
@user-sy2vu1bm6h 4 года назад
Нужно было реализовать баттоны на руках И добавить где то скриммер
@eduardoanny
@eduardoanny 4 года назад
))
@popovd
@popovd 4 года назад
Надо было ещё о третьем варианте реализации рассказать. Который для данной задачи самый правильный.
@eduardoanny
@eduardoanny 4 года назад
Есть еще несколько вариантов, обо всем рассказать в одном видео невозможно)
@popovd
@popovd 4 года назад
@@eduardoanny Но правильный вариант стоило бы упомянуть)
@stolenhen
@stolenhen 4 года назад
Денис, а какой правильный вариант?
@popovd
@popovd 4 года назад
@@stolenhen Используя Unwind Segue.
@flyan2303
@flyan2303 4 года назад
Здравствуйте. Скажите, пожалуйста, только для делегатов необходимо указывать weak var? Например если у меня MVP. Нужно ли мне для связывания view и presenter использовать weak var?
@bohdandatskiv376
@bohdandatskiv376 4 года назад
Да, или unowned, иначе будет две стронг сылки
@eduardoanny
@eduardoanny 4 года назад
Здравствуйте, нужно использовать weak var.
@flyan2303
@flyan2303 4 года назад
Спасибо!
@denismailing1419
@denismailing1419 Год назад
тоже думаю, зачем мудрить если можно использовать один простой метод unwindSegue
@TourShturman
@TourShturman 2 года назад
непонятно...
Далее
Starman🫡
00:18
Просмотров 14 млн
Dependency Injection
15:31
Просмотров 15 тыс.
Swift. Для чего нужны протоколы ?
19:53
LayoutSubviews vs layoutIfNeeded (Swift 5)
17:56
Просмотров 13 тыс.
Что такое делегирование? (Swift)
11:06