Приветствую вас, друзья!
Сталкивались ли вы с такой проблемой (или задумывались о том), как передать информацию из контроллера в предыдущий контроллер или как передать информацию из ячейки в контроллер и т.п.?
В общем, когда метод prepare for segue или instantiate view controller не могут нам помочь?
На помощь приходят communication patterns, в частности, completion handlers и delegates and protocols, о них и пойдет речь. Так же я расскажу, почему не стоит применять распространенный паттерн NotificationCenter в большинстве случаев. Тонкости реализации completion handlers и delegates & protocols мы рассмотрим на примере приложения "Матрица". Мы будем выбирать синюю или красную таблетку и, в зависимости от выбранной капсулы, наш стартовый экран будет меняться.
Поехали!