Vai tūlīt pēc kontroliera izveides tiek izveidots tā skats?
sobes.tech AI
Atbilde no AI
Nē. Skata piemērs (view) UIViewController tipa kontrolierim tiek izveidots vēlāk, pirmo piekļuvi view īpašībai:
UIKit neveido skatu nekavējoties pēc kontroliera inicializācijas, lai optimizētu resursus. Skats var būt vizuāli sarežģīts un prasīt daudz atmiņas un procesora laika tā izveidei. To "vilcina" — tikai tad, kad tas patiešām ir nepieciešams ekrānā parādīšanai, sistēma taupa resursus.
Šis process notiek, piemēram, kad kontrolieris tiek pievienots cita kontroliera vai loga skatu hierarhijā vai kad tā view īpašība tieši tiek izsaukta. Ja kontrolieris ir inicializēts, bet nekad netiek parādīts vai izmantots, tā skats netiks izveidots.
Kontroliera dzīves cikls un skata izveide ietver šādus galvenos punktus:
init(coder:)vaiinit(nibName:bundle:): Kontrolieris tiek inicializēts, betviewvēl irnil.- Pirmais piekļūšana
view: Javiewirnil, sistēma izsaucloadView()metodi. loadView(): Šajā metodē jūs (vai sistēma pēc noklusējuma) izveidojat kontroliera galveno skatu un piešķirat toviewīpašībai.viewDidLoad(): Šī metode tiek izsaukta pēc tam, kad skats ir ielādēts un piešķirtsview. Šeit parasti notiek iekšējo skatu konfigurācija, datu ielāde un citas ar skatu saistītas darbības.
loadView() pārrakstīšanas piemērs:
override func loadView() {
// Vietā, lai ielādētu no Storyboard/XIB vai izveidotu tukšu UIView
// mēs izveidojam savu unikālo skatu
let customView = CustomContentView()
view = customView
// Šeit view jau nav `nil`
}
Svarīgi atcerēties, ka lielākajā daļā gadījumu jūs tieši nepārrakstīsiet loadView(), bet uzticēsieties UIKit standarta realizācijai, kas ielādē skatu no Storyboard, XIB faila vai izveido tukšu UIView kā noklusējumu. Tomēr ir būtiski saprast, kad un kā tiek izveidots skats.