Kas vaatesnäide luuakse kohe pärast kontrollija loomist?
sobes.tech AI
Vastus AI-lt
Ei ole. Vaate näide (view) UIViewController tüüpi kontrolleri jaoks luuakse hiljem, esimese pöördumisega view omaduse poole:
UIKit ei loo vaadet kohe pärast kontrolleri initsialiseerimist ressursside optimeerimiseks. Vaade võib olla visuaalselt keeruline ning nõuda palju mälu ja protsessori aega selle loomisel. Seda "viivitusega" luuakse ainult siis, kui see on tõesti vajalik ekraanil kuvamiseks, süsteem säästab ressursse.
See protsess toimub näiteks siis, kui kontrollerit lisatakse teise kontrolleri või akna vaatehierarhiasse või kui tema view omadus kutsutakse selgelt välja. Kui kontroller on initsialiseeritud, kuid kunagi ei kuvata ega kasutata, ei loo tema vaadet.
Kontrolleri elutsükkel ja vaate loomine hõlmab järgmisi olulisi punkte:
init(coder:)võiinit(nibName:bundle:): Kontroller initsialiseeritakse, kuidviewon endiseltnil.- Esimene pöördumine
view-le: Kuiviewonnil, kutsub süsteem välja meetodiloadView(). loadView(): Selles meetodis te (või süsteem vaikimisi) loote kontrolleri põhivaate ja määrate selle omaduseleview.viewDidLoad(): See meetod kutsutakse pärast seda, kui vaade on laaditud ja määratudview-le. Siin toimub tavaliselt sisemiste vaadete seadistamine, andmete laadimine ja muud tegevused, mis sõltuvad vaate olemasolust.
Näide loadView() ülekirjutamisest:
override func loadView() {
// Selle asemel, et laadida Storyboardist/XIB-ist või luua tühi UIView
// loome oma kohandatud vaate
let customView = CustomContentView()
view = customView
// Siin pole view enam `nil`
}
Oluline on meeles pidada, et enamikul juhtudel ei ülekirjuta te otse loadView(), vaid usaldate UIKit-i standardset teostust, mis laadib vaate Storyboardist, XIB-failist või loob vaikimisi tühja UIView. Kuid on kriitiline mõista, millal ja kuidas vaade luuakse.