Sobes.tech
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:

  1. 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.
  2. viewDidDisappear: Táto metóda sa volá po úplnom skrytí pohľadu kontroléra.
  3. applicationWillResignActive: Volá sa v AppDelegate predtým, ako aplikácia prejde z aktívneho do neaktívneho stavu (napríklad pri minimalizácii alebo prijatí hovoru).
  4. applicationDidEnterBackground: Volá sa v AppDelegate po 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á. UIViewController zostá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:

  1. applicationWillEnterForeground: Volá sa v AppDelegate predtým, ako sa aplikácia vráti z pozadia do popredia.
  2. applicationDidBecomeActive: Volá sa v AppDelegate po tom, ako sa aplikácia opäť stane aktívnou.
  3. viewWillAppear: Volá sa predtým, ako sa pohľad kontroléra stane viditeľným. Tu môžete aktualizovať UI.
  4. 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ý.