Sobes.tech
Middle

Баскаруучу түзүлгөндөн кийин анын көрүнүшүнүн үлгүсү дароо түзүлөбү?

sobes.tech AI

AIден жооп

Жок. Көрүнүш үлгүсү (view) UIViewController түрүндөгү контроллер үчүн кечиктирилген түрдө түзүлөт, биринчи жолу view мүлкүнө кайрылганда:

UIKit контроллердин инциализациясынан кийин, ресурстарды оптималдаштыруу үчүн, көрүнүштү түзбөйт. Көрүнүш визуалдык жактан татаал болушу мүмкүн жана түзүү үчүн көп эс жана процессор убактысын талап кылышы мүмкүн. Аны "кечиктирип" түзүү, аны чын эле экранда көрсөтүү керек болгон учурда гана, системага ресурстарды үнөмдөөгө мүмкүндүк берет.

Бул процесс, мисалы, контроллер башка контроллердин көрүнүштөрүнүн хиерархиясына кошулганда же терезеге кошулганда, же анын view мүлкү ачыкка чакырылганда болот. Эгер контроллер инициализацияланган болсо, бирок эч качан көрсөтүлбөсө же колдонулбаса, анын көрүнүшү түзүлбөйт.

Контроллердин жашоо цикли жана көрүнүштү түзүү төмөнкү негизги учурларды камтыйт:

  1. init(coder:) же init(nibName:bundle:): Контроллер инициализацияланат, бирок view дагы nil.
  2. Биринчи кайрылуу view-га: Эгер view nil болсо, системасы loadView() методун чакырат.
  3. loadView(): Бул методдо сиз (же системасы автоматтык түрдө) контроллердин негизги көрүнүшүн түзүп, аны view мүлкүнө белгилейтсиз.
  4. viewDidLoad(): Бул метод, көрүнүш жүктөлгөндөн жана view мүлкүнө белгиленгенден кийин чакырылат. Бул жерде адатта, ички көрүнүштөрдү орнотуу, маалыматтарды жүктөө жана башка аракеттер жүргүзүлөт, алар көрүнүштүн болушуна көз каранды.

loadView() кайра аныктоо мисалы:

override func loadView() {
    // Storyboard/XIB колдонбостон же бош UIView түзүү
    // биздин өзгөчө көрүнүштү түзөбүз
    let customView = CustomContentView()
    view = customView
    // Мында view азыр `nil` эмес
}

Маанилүү, көп учурда сиз loadView() түздөн-түз кайра аныктабайсыз, instead, UIKitтин стандарттык иштешине ишенесиз, ал Storyboard, XIB файлдарынан көрүнүштү жүктөйт же алдын ала бош UIView түзөт. Бирок, көрүнүш качан жана кандайча түзүлүп жатканын түшүнүү өтө маанилүү.