Sobes.tech
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:

  1. İ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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. Trait Collection dəyişiklikləri:
    • traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?): Ətraf mühitin xüsusiyyətləri dəyişdikdə çağırılır.
  7. 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, deinit metodları obyektin həyat dövründə bir dəfə çağırılır.
  • viewWillAppearviewDidAppear metodları 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