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

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

Короткий ответ

Что ответить на собеседовании

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

Подробный разбор

Ответ с пояснениями

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

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее