Middle
Vue nazoratchisining hayot tsiklini haqida gapir.
sobes.tech AI
AIdan javob
iOS'da UIViewController ko'rinishini boshqaruvchi hayot aylanishi, uning yaratilishidan boshlab yo'q qilinishigacha bo'lgan voqealar ketma-ketligini ifodalaydi. Asosiy bosqichlar:
- Boshlash:
init?(coder aDecoder: NSCoder): Storyboard/Nib'dan boshlash.init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?): Nib faylidan yoki dasturiy ravishda Nibsiz boshlash.loadView(): Kontrolchining asosiy ko'rinishini yuklash yoki yaratish. Agar Storyboard/Nib ishlatilsa, avtomatik chaqiriladi. Dasturiy ravishda yaratish uchun ustiga yozilishi kerak.
- Ko'rinishni yuklash:
viewDidLoad(): Kontrolchining ko'rinishi xotiraga yuklangandan so'ng chaqiriladi. Geometriyaga kirish talab qilmaydigan boshlang'ich sozlamalar uchun mos.
- Ko'rinishning paydo bo'lishi:
viewWillAppear(_ animated: Bool): Kontrolchining ko'rinishi ko'rinadigan bo'lishidan oldin chaqiriladi. Ma'lumotlarni yangilash uchun mos, ular o'zgarishi mumkin.viewDidAppear(_ animated: Bool): Kontrolchining ko'rinishi ko'rinadigan bo'lsa, chaqiriladi. Animatsiyalarni boshlash yoki faqat to'liq ko'rsatgandan keyin bajarilishi kerak bo'lgan boshqa vazifalar uchun mos.
- Ko'rinishning yo'qolishi:
viewWillDisappear(_ animated: Bool): Kontrolchining ko'rinishi yo'q bo'lishidan oldin chaqiriladi. Holatni saqlash yoki faoliyatni to'xtatish uchun mos.viewDidDisappear(_ animated: Bool): Ko'rinish yo'q bo'lgandan so'ng chaqiriladi. Resurslarni bo'shatish yoki fon rejimida kerak bo'lmagan jarayonlarni to'xtatish uchun mos.
- Maket o'zgarishlari:
viewWillLayoutSubviews(): Kontrolchining ko'rinishlari o'lchamini o'zgartirishdan oldin chaqiriladi.viewDidLayoutSubviews(): Kontrolchining ko'rinishlari o'zgartirilgandan so'ng chaqiriladi. Elementlarning o'lchamlari va pozitsiyalarini yakuniy sozlash uchun mos.
- Trait Collection o'zgarishlari:
traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?): Muhit xususiyatlari, masalan, sinf o'lchami, ekran zichligi, yorqin/tungi rejim va boshqalar o'zgarganda chaqiriladi.
- Xotira bo'shatish (Deinitialization):
deinit: Ob'ekt xotiradan chiqarilishidan oldin chaqiriladi. Resurslarni tozalash, bildirishnomalardan voz kechish va boshqalar uchun ishlatiladi.
Muhim nuqtalar:
loadView,viewDidLoad,viewDidAppear,viewWillDisappear,viewDidDisappear,deinitmetodlari hayot aylanishida faqat bir marta chaqiriladi.viewWillAppearvaviewDidAppearmetodlari bir nechta chaqirilishi mumkin, masalan, oldinga va orqaga navigatsiya qilishda.
Kontrolchining yaratilishi va ko'rsatilishi davomida chaqirilish ketma-ketligining misoli:
// Boshlash (Agar Storyboard/Nib'dan bo'lsa)
init?(coder aDecoder: NSCoder)
// Yoki boshlash (Agar dasturiy bo'lsa)
init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?)
// Ko'rinishni yuklash
loadView()
viewDidLoad()
// Ko'rinishning paydo bo'lishi
viewWillAppear(true)
// ... ko'rinish ko'rinadi ...
viewDidAppear(true)
// Ko'rinishning yo'qolishi (masalan, boshqa VC ga o'tishda)
viewWillDisappear(true)
// ... ko'rinish ko'rinmay qoldi ...
viewDidDisappear(true)
// Xotira bo'shatish (kontrolchga endi kuchli havolalar bo'lmaganda)
deinit