Middle
Nəzarətçinin həyat dövrlərindən və onların necə çağrıldığından danış.
sobes.tech Süni İntellekt
AI-dan cavab
UIViewController-in həyat dövrü onun mövcudluğunun müəyyən anlarında çağırılan metodları əhatə edir: yaradılmadan məhv edilməyə qədər.
Həyat dövrünün əsas metodları:
-
viewDidLoad():- Kontrolörün görünüşü yaddaşa yükləndikdən sonra, lakin ekranə çıxmadan əvvəl çağırılır.
- Məlumatların ilkinləşdirilməsi, görünüşün geometriyasına bağlı olmayan UI elementlərinin qurulması üçün istifadə olunur.
- Həyat dövrü ərzində yalnız bir dəfə çağırılır.
-
viewWillAppear(_ animated: Bool):- Kontrolörün görünüşü ekranda görünməzdən əvvəl birbaşa çağırılır.
- Hər dəfə görünüş görünən vəziyyətə keçəndə həyata keçirilməli olan tapşırıqlar üçün istifadə olunur (məsələn, məlumatların yenilənməsi, animasiyalar).
- Bir neçə dəfə çağırıla bilər.
-
viewDidAppear(_ animated: Bool):- Kontrolörün görünüşü tam olaraq ekranda görünəndən sonra çağırılır.
- Animasiya və ya digər tapşırıqların başlaması üçün uyğundur, görünüş tam hazır olmalıdır.
- Bir neçə dəfə çağırıla bilər.
-
viewWillDisappear(_ animated: Bool):- Kontrolörün görünüşü ekrandan çıxmadan əvvəl birbaşa çağırılır (məsələn, başqa ekrana keçid zamanı).
- Vəziyyətin saxlanması və ya görünməyən zaman icra olunmaması lazım olan tapşırıqların dayandırılması üçün istifadə olunur (məsələn, timerlərin dayandırılması).
- Bir neçə dəfə çağırıla bilər.
-
viewDidDisappear(_ animated: Bool):- Kontrolörün görünüşü tam olaraq ekrandan çıxarıldıqdan sonra çağırılır.
- Resursların təmizlənməsi və ya artıq lazım olmayan tapşırıqların dayandırılması üçün istifadə olunur.
- Bir neçə dəfə çağırıla bilər.
-
viewWillLayoutSubviews():- Kontrolörün alt görünüşlərinin yerləşdirilməsinə başlamazdan əvvəl çağırılır.
- Auto layout-dan əvvəl constraints və ya frame-lərdə dəyişikliklər üçün istifadə olunur.
- Bir neçə dəfə çağırıla bilər.
-
viewDidLayoutSubviews():- Kontrolörün alt görünüşlərinin yerləşdirilməsi tamamlandıqdan sonra çağırılır.
- Final ölçülərə əsaslanan tapşırıqlar üçün istifadə olunur (məsələn, scroll göstəricilərinin və ya kölgələrin tənzimlənməsi).
- Bir neçə dəfə çağırıla bilər.
-
didReceiveMemoryWarning():- Az yaddaş vəziyyətində çağırılır.
- Sonradan yenidən yaradıla biləcək resursların sərbəst buraxılması üçün istifadə olunur.
-
deinit:UIViewControllerobyekti məhv ediləndə və yaddaşdan azad ediləndə birbaşa çağırılır.- Son təmizləməni həyata keçirmək üçün istifadə olunur, məsələn, müşahidəçilərin silinməsi və ya şəbəkə əlaqələrinin bağlanması.
Çağırış ardıcıllığı:
Kontrolörün görünməyə başlaması zamanı metodların tipik çağırış ardıcıllığı:
viewDidLoad()viewWillAppear(_ animated: Bool)viewWillLayoutSubviews()viewDidLayoutSubviews()viewDidAppear(_ animated: Bool)
Kontrolörün yox olma zamanı metodların tipik çağırış ardıcıllığı:
viewWillDisappear(_ animated: Bool)viewDidDisappear(_ animated: Bool)deinit(əgər artıq lazım deyilsə)
İcra nümunəsi:
import UIKit
class MyViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// UI-nin qurulması, məlumatların ilkinləşdirilməsi
print("viewDidLoad")
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
// Görünüşün görünməsindən əvvəl yeniləmələr
print("viewWillAppear")
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
// Görünüş tam olaraq göründükdən sonra, animasiyaların başlanması
print("viewDidAppear")
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
// Yox olmağa hazırlıq, vəziyyətin saxlanması
print("viewWillDisappear")
}
override func viewDidDisappear(_ animated: Bool) {
super.viewDidDisappear(animated)
// Yox olma tamamlandı, təmizləmə
print("viewDidDisappear")
}
override func viewWillLayoutSubviews() {
super.viewWillLayoutSubviews()
// Avto layout-dan əvvəl
print("viewWillLayoutSubviews")
}
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
// Avto layout-dan sonra
print("viewDidLayoutSubviews")
}
deinit {
// Resursların təmizlənməsi
print("deinit")
}
}