Middle
Պատմեք ինձ Vue վերահսկողի կյանքի ցիկլի մասին։
sobes.tech AI
Պատասխան AI-ից
iOS-ում UIViewController տեսակի վերահսկողի կյանքի ցիկլը ներկայացնում է իր ստեղծումից մինչև ոչնչացումը տեղի ունեցող իրադարձությունների հաջորդականությունը: Հիմնական փուլերը՝
- Անվանում:
init?(coder aDecoder: NSCoder): Ստեղծում Storyboard/Nib-ից:init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?): Ստեղծում Nib ֆայլից կամ ծրագրային կերպով առանց Nib-ի:loadView(): Վերաբերում է վերահսկողի հիմնական տեսքի բեռնումին կամ ստեղծմանը: Եթե օգտագործվում է Storyboard/Nib, այն ավտոմատ կերպով կանչվում է: Ծրագրային տեսքի ստեղծման դեպքում պետք է վերագրել:
- Տեսքի բեռնում:
viewDidLoad(): Կատարվում է այն ժամանակ, երբ վերահսկողի տեսքը բեռնվում է հիշողության մեջ: Հարմար է սկզբնական կարգավորումների համար, որոնք չեն պահանջում գեոմետրիային հասանելիություն:
- Տեսքի հայտնվել:
viewWillAppear(_ animated: Bool): Կատարվում է հենց առաջ, երբ տեսքը պատրաստվում է դառնալ տեսանելի:viewDidAppear(_ animated: Bool): Կատարվում է այն ժամանակ, երբ տեսքը դառնում է տեսանելի:
- Տեսքի անհետացում:
viewWillDisappear(_ animated: Bool): Կատարվում է հենց առաջ, երբ տեսքը պատրաստվում է անհետանալ:viewDidDisappear(_ animated: Bool): Կատարվում է այն ժամանակ, երբ տեսքը անհետանում է:
- Մակետավորման փոփոխություններ:
viewWillLayoutSubviews(): Կատարվում է նախքան վերահսկողի տեսքերը փոխեն իրենց չափերը:viewDidLayoutSubviews(): Կատարվում է հետո, երբ տեսքերը փոխել են իրենց չափերը:
- Traits հավաքածուի փոփոխություններ:
traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?): Կատարվում է շրջակա միջավայրի հատկանիշների փոփոխության ժամանակ:
- Հիշողության ազատում:
deinit: Կատարվում է հենց առաջ, երբ օբյեկտը ազատվում է հիշողությունից:
Հիմնական կետեր՝
loadView,viewDidLoad,viewDidAppear,viewWillDisappear,viewDidDisappear,deinitմեթոդները կանչվում են մեկ անգամ՝ օբյեկտի կյանքի ցիկլում:viewWillAppearևviewDidAppearմեթոդները կարող են կանչվել մի քանի անգամ, օրինակ՝ առաջ և հետ նավիգացիայի ժամանակ:
Նմուշ՝ կանչերի հաջորդականություն:
// Անվանում (եթե Storyboard/Nib-ից)
init?(coder aDecoder: NSCoder)
// Կամ անվանում (եթե ծրագրային)
init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?)
// Տեսքի բեռնում
loadView()
viewDidLoad()
// Տեսքի հայտնվել
viewWillAppear(true)
// ... տեսքը դառնում է տեսանելի ...
viewDidAppear(true)
// Տեսքի անհետացում (օրինակ՝ մյուս VC-ին անցնելիս)
viewWillDisappear(true)
// ... տեսքը անհետացավ ...
viewDidDisappear(true)
// Հիշողության ազատում (երբ այլևս չկա ուժեղ հղում վերահսկողին)
deinit