Middle
Čo sa deje s UIViewController pri minimalizácii aplikácie?
sobes.tech AI
Odpoveď od AI
Pri minimalizácii aplikácie prechádza aktuálne zobrazovaný UIViewController nasledujúcimi fázami životného cyklu:
- viewWillDisappear: Táto metóda sa volá predtým, ako sa pohľad kontroléra stane neviditeľným. Tu môžete uložiť stav UI alebo zrušiť operácie.
- viewDidDisappear: Táto metóda sa volá po úplnom skrytí pohľadu kontroléra.
- applicationWillResignActive: Volá sa v
AppDelegatepredtým, ako aplikácia prejde z aktívneho do neaktívneho stavu (napríklad pri minimalizácii alebo prijatí hovoru). - applicationDidEnterBackground: Volá sa v
AppDelegatepo tom, ako aplikácia prešla do režimu na pozadí. V tomto stave má aplikácia obmedzený čas na vykonanie úloh a môže byť systémom pozastavená alebo ukončená.UIViewControllerzostáva v pamäti, ale jeho pohľad sa nezobrazuje.
Ak aplikácia zostane na pozadí a nie je systémom zatvorená, pri návrate do aktívneho stavu prechádza UIViewController opačnými fázami:
- applicationWillEnterForeground: Volá sa v
AppDelegatepredtým, ako sa aplikácia vráti z pozadia do popredia. - applicationDidBecomeActive: Volá sa v
AppDelegatepo tom, ako sa aplikácia opäť stane aktívnou. - viewWillAppear: Volá sa predtým, ako sa pohľad kontroléra stane viditeľným. Tu môžete aktualizovať UI.
- viewDidAppear: Volá sa po tom, ako sa pohľad kontroléra stane viditeľným.
Je dôležité poznamenať, že objekt UIViewController nie je odstránený z pamäti pri minimalizácii, pokiaľ ho systém výslovne neuvoľní kvôli nedostatku zdrojov (čo je zriedkavé a závisí od mnohých faktorov). Pohľad (view) kontroléra môže byť tiež odstránený z pamäti (viewWillUnload, viewDidUnload - metódy boli odstránené v iOS 6), ak v danom momente nie je potrebný a systém potrebuje pamäť. V takom prípade bude pri ďalšom prístupe k view znovu vytvorený.