Sobes.tech
Назад к вопросам
Junior — Middle
81

Какими способами можно реализовать передачу данных между компонентами или экранами в iOS?

Ответ от нейросети

sobes.tech AI

В iOS существует несколько способов передачи данных между компонентами или экранами:

  1. Передача через инициализатор — при создании нового контроллера передать данные через конструктор.

  2. Свойства контроллера — установить значения свойств целевого контроллера перед переходом.

  3. Segue и метод prepare(for:sender:) — при использовании Storyboard можно передать данные в методе prepare, получая ссылку на следующий контроллер.

  4. Delegate (делегаты) — для обратной передачи данных от дочернего контроллера к родительскому.

  5. NotificationCenter — отправка уведомлений с данными, которые могут слушать другие компоненты.

  6. Closure (замыкания) — передача callback-функций для передачи данных обратно.

  7. 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
        }
    }
}