Sobes.tech
Junior — Middle

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:

  1. Edastamine initsialiseerija kaudu — uue kontrolleri loomisel edastada andmed konstruktoriga.

  2. Kontrollori omadused — määrata sihtkontrolleri omaduste väärtused enne üleminekut.

  3. Segue ja prepare(for:sender:) meetod — Storyboardi kasutades saab andmeid edastada prepare meetodis, saades viite järgmisele kontrollerile.

  4. Delegate (delegaat) — andmete tagasisaatmine lapsekontrollerilt vanemkontrollerile.

  5. NotificationCenter — teavituste saatmine andmetega, mida teised komponendid võivad kuulata.

  6. Closure (sulg) — callback-funktsioonide edastamine andmete tagasisaatmiseks.

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