Два основных подхода для передачи данных вперед контроллеру представления-получателю:
prepare(for:sender:) — используй этот метод при работе с segue из storyboard для настройки контроллера представления-получателя перед его отображениемДля передачи данных назад предыдущему контроллеру представления есть три рекомендуемых паттерна:
protocol, который реализует контроллер представления-источник, затем вызывай методы делегата из контроллера-получателяNotificationCenter — отправь уведомление, которое может слушать любой контроллер представления; лучше всего использовать, когда несколько контроллеров должны реагировать на одно событиеКогда несколько контроллеров представления должны иметь доступ к одинаковым данным, рассмотри эти подходы:
Вперед → прямое присвоение свойств или prepare(for:sender:)
Назад → делегирование, замыкания или NotificationCenter
Общие → dependency injection или singleton
Выбор правильного подхода зависит от связи между контроллерами представления и количества компонентов, которым нужен доступ к данным. Dependency injection обычно предпочтителен с точки зрения поддерживаемости и тестируемости.
Метод prepare(for:sender:) — это рекомендуемый подход для передачи данных при работе с программно создаваемыми переходами между контроллерами представления через present(_:animated:completion:).
Новый — ещё не проверен сообществом
Вы