Какими способами можно реализовать передачу данных между компонентами или экранами в iOS?
Ответ от нейросети
sobes.tech AI
В iOS существует несколько способов передачи данных между компонентами или экранами:
-
Передача через инициализатор — при создании нового контроллера передать данные через конструктор.
-
Свойства контроллера — установить значения свойств целевого контроллера перед переходом.
-
Segue и метод prepare(for:sender:) — при использовании Storyboard можно передать данные в методе prepare, получая ссылку на следующий контроллер.
-
Delegate (делегаты) — для обратной передачи данных от дочернего контроллера к родительскому.
-
NotificationCenter — отправка уведомлений с данными, которые могут слушать другие компоненты.
-
Closure (замыкания) — передача callback-функций для передачи данных обратно.
-
Singleton или общий менеджер данных — хранение и доступ к общим данным через глобальный объект.
Пример передачи данных через prepare(for:sender:):
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "showDetail" {
if let detailVC = segue.destination as? DetailViewController {
detailVC.data = self.selectedData
}
}
}