Kuidas saab iOS-is komponentide või ekraanide vahel andmeid edastada?
sobes.tech AI
Vastus AI-lt
iOS-is on mitu viisi andmete edastamiseks komponentide või ekraanide vahel:
-
Edastamine initsialiseerija kaudu — uue kontrolleri loomisel edastada andmed konstruktoriga.
-
Kontrollori omadused — määrata sihtkontrolleri omaduste väärtused enne üleminekut.
-
Segue ja prepare(for:sender:) meetod — Storyboardi kasutades saab andmeid edastada prepare meetodis, saades viite järgmisele kontrollerile.
-
Delegate (delegaat) — andmete tagasisaatmine lapsekontrollerilt vanemkontrollerile.
-
NotificationCenter — teavituste saatmine andmetega, mida teised komponendid võivad kuulata.
-
Closure (sulg) — callback-funktsioonide edastamine andmete tagasisaatmiseks.
-
Singleton või ühine andmehaldur — andmete salvestamine ja ligipääs globaalobjekti kaudu.
Näide andmete edastamisest prepare(for:sender:) kaudu:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "showDetail" {
if let detailVC = segue.destination as? DetailViewController {
detailVC.data = self.selectedData
}
}
}