Какви начини има за реализиране на прехвърлянето на данни между компоненти или екрани в iOS?
sobes.tech AI
Отговор от 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
}
}
}