Az ellenőrző létrehozása után azonnal létrejön a nézet példánya?
sobes.tech MI
Válasz az MI-től
Nem. A UIViewController típusú vezérlő nézetpéldánya (view) késleltetve jön létre, az első hozzáféréskor a view tulajdonsághoz.
A UIKit nem hozza létre azonnal a nézetet a vezérlő inicializálása után az erőforrások optimalizálása érdekében. A nézet vizuálisan összetett lehet, és sok memóriát, valamint CPU időt igényelhet a létrehozásához. A "lusta" módon történő létrehozásával, csak akkor, amikor valóban szükséges a képernyőn való megjelenítéshez, a rendszer erőforrásokat takarít meg.
Ez a folyamat például akkor történik, amikor a vezérlőt hozzáadják egy másik vezérlő vagy ablak nézethierarchiájához, vagy amikor kifejezetten meghívják a view tulajdonságát. Ha a vezérlőt inicializálják, de soha nem jelenítik meg vagy nem használják, a nézete nem lesz létrehozva.
A vezérlő életciklusa és a nézet létrehozása a következő kulcsfontosságú pontokat foglalja magában:
init(coder:)vagyinit(nibName:bundle:): A vezérlő inicializálva van, de aviewmégnil.- Első hozzáférés a
view-hoz: Ha aviewnil, a rendszer meghívja aloadView()metódust. loadView(): Ebben a módszerben ön (vagy az alapértelmezett rendszer) létrehozza a vezérlő gyökérnézetét, és hozzárendeli aviewtulajdonsághoz.viewDidLoad(): Ez a metódus utána hívódik meg, miután a nézet betöltődött és hozzárendelték aview-hoz. Itt általában a beállításokat, az adatok betöltését és más, a nézet meglétéhez kötött műveleteket végzik.
A loadView() felülírásának példája:
override func loadView() {
// Ahelyett, hogy Storyboard/XIB-ből töltenénk be vagy üres UIView-t hoznánk létre
// saját egyedi nézetünket hozzuk létre
let customView = CustomContentView()
view = customView
// Itt a view már nem `nil`
}
Fontos megjegyezni, hogy a legtöbb esetben nem fogod közvetlenül felülírni a loadView()-t, hanem a UIKit szabványos működésére fogsz támaszkodni, amely a nézetet egy Storyboard, XIB fájl vagy alapértelmezett üres UIView betöltésével hozza létre. Azonban elengedhetetlen megérteni, mikor és hogyan jön létre a nézet.