Middle
Vue nəzarətçisinin həyat dövrü haqqında danış.
sobes.tech Süni İntellekt
AI-dan cavab
iOS-də UIViewController növünün həyat dövrü onun yaradılmasından məhv olunmasına qədər baş verən hadisələrin ardıcıllığını təmsil edir. Əsas mərhələlər:
- İlkinləşdirmə:
init?(coder aDecoder: NSCoder): Storyboard/Nib-dən ilkinləşdirmə.init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?): Nib faylından və ya proqram vasitəsilə ilkinləşdirmə.loadView(): Kontrolörün kök görünüşünü yükləmək və ya yaratmaq. Əgər Storyboard/Nib istifadə olunursa, avtomatik çağırılır. Proqramla görünüş yaradılırsa, override edilməlidir.
- Görünüşün yüklənməsi:
viewDidLoad(): Kontrolörün görünüşü yaddaşa yükləndikdən sonra çağırılır. Ölçülərlə əlaqəli olmayan ilkin tənzimləmələr üçün uyğundur.
- Görünüşün görünməsi:
viewWillAppear(_ animated: Bool): Kontrolörün görünməyə hazırlaşdığı zaman çağırılır. Məlumatların yenilənməsi üçün uyğundur.viewDidAppear(_ animated: Bool): Kontrolörün görünən olduğu zaman çağırılır. Animasiya və ya digər əməliyyatlar üçün uyğundur.
- Görünüşün itməsi:
viewWillDisappear(_ animated: Bool): Kontrolörün görünməz olmağa hazırlaşdığı zaman çağırılır. Durumun saxlanması və ya aktivliklərin dayandırılması üçün uyğundur.viewDidDisappear(_ animated: Bool): Kontrolörün görünməz olduğu zaman çağırılır. Resursların azad olunması və ya arxa plan proseslərinin dayandırılması üçün uyğundur.
- Layihənin dəyişdirilməsi:
viewWillLayoutSubviews(): Kontrolörün görünüşlərinin ölçülərinin dəyişdirilməsindən əvvəl çağırılır.viewDidLayoutSubviews(): Görünüşlərin ölçüləri dəyişdikdən sonra çağırılır. Elementlərin ölçülərinin və mövqelərinin son tənzimləməsi üçün uyğundur.
- Trait Collection dəyişiklikləri:
traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?): Ətraf mühitin xüsusiyyətləri dəyişdikdə çağırılır.
- Yaddaşın azad olunması:
deinit: Obrazın yaddaşdan azad olunmasına yaxın çağırılır. Resursların təmizlənməsi və bildirişlərdən çıxış üçün istifadə olunur.
Əhəmiyyətli məqamlar:
loadView,viewDidLoad,viewDidAppear,viewWillDisappear,viewDidDisappear,deinitmetodları obyektin həyat dövründə bir dəfə çağırılır.viewWillAppearvəviewDidAppearmetodları bir neçə dəfə çağırıla bilər, məsələn, irəli və geri naviqasiyada.
Nümunə çağırış ardıcıllığı:
// İlkinləşdirmə (Storyboard/Nib-dən)
init?(coder aDecoder: NSCoder)
// və ya proqramla ilkinləşdirmə
init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?)
// Görünüşün yüklənməsi
loadView()
viewDidLoad()
// Görünüşün görünməsi
viewWillAppear(true)
// ... görünüş görünür ...
viewDidAppear(true)
// Görünüşün itməsi (məsələn, başqa VC-yə keçid zamanı)
viewWillDisappear(true)
// ... görünüş görünmür ...
viewDidDisappear(true)
// Yaddaşın azad olunması (kontrolörə artıq güclü əlaqələr olmadıqda)
deinit