Sobes.tech
Junior — Middle

Какви начини има за реализиране на прехвърлянето на данни между компоненти или екрани в iOS?

sobes.tech AI

Отговор от 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
        }
    }
}