Чӣ мешавад бо UIViewController вақте ки барнома кам мешавад?
sobes.tech AI
Ҷавоб аз AI
Пад час сціскання прыкладання UIViewController, які ў дадзены момант адлюстроўваецца карыстальніку, праходзяць праз наступныя стадыі жыццёвага цыклу:
- viewWillDisappear: Метад выклікаецца перад тым, як прадстаўленне кантролера перастане быць відавочным. Тут можна захаваць стан UI або адмяніць аперацыі.
- viewDidDisappear: Метад выклікаецца пасля таго, як прадстаўленне кантролера цалкам схаваецца.
- applicationWillResignActive: Метад выклікаецца ў
AppDelegateперад тым, як прыкладанне пераходзіць з актыўнага стану ў неактыўнае (напрыклад, пры сцісканні або атрымання званка). - applicationDidEnterBackground: Метад выклікаецца ў
AppDelegateпасля таго, як прыкладанне перайшло ў фонавы рэжым. У гэтым стане прыкладанне мае абмежаваны час для выканання задач і можа быць прыпынена або завершана сістэмай.UIViewControllerпры гэтым застаецца ў памяці, але яго прадстаўленне не адлюстроўваецца.
Калі прыкладанне застаецца у фонавым рэжыме і не завершана сістэмай, пры наступным вяртанні ў актыўны стан UIViewController праходзіць зваротныя стадыі:
- applicationWillEnterForeground: Метад выклікаецца ў
AppDelegateперад тым, як прыкладанне пераходзіць з фонавага рэжыму назад у актыўны стан. - applicationDidBecomeActive: Метад выклікаецца ў
AppDelegateпасля таго, як прыкладанне зноў стала актыўным. - viewWillAppear: Метад выклікаецца перад тым, як прадстаўленне кантролера стане відавочным. Тут можна абнавіць UI.
- viewDidAppear: Метад выклікаецца пасля таго, як прадстаўленне кантролера стала відавочным.
Варта адзначыць, што сам аб'ект UIViewController не выдаляецца з памяці пры сцісканні, калі ён не быў відавочна выгружаны сістэмай з-за недахопу рэсурсаў (што адбываецца рэдка і залежыць ад многіх фактараў). Прадстаўленне (view) кантролера таксама можа быць выгружана з памяці (viewWillUnload, viewDidUnload - метады былі выдалены ў iOS 6), калі яно не патрабуецца ў дадзены момант і сістэме патрэбна памяць. У гэтым выпадку пры наступным доступе да view яно будзе створана зноў.