Sobes.tech
Middle

Co se stane s UIViewController při minimalizaci aplikace?

sobes.tech AI

Odpověď od AI

Při minimalizaci aplikace prochází aktuálně zobrazovaný UIViewController následujícími fázemi životního cyklu:

  1. viewWillDisappear: Tato metoda je volána před tím, než se pohled kontroléru stane neviditelným. Zde můžete uložit stav UI nebo zrušit operace.
  2. viewDidDisappear: Tato metoda je volána po úplném skrytí pohledu kontroléru.
  3. applicationWillResignActive: Tato metoda je volána v AppDelegate před tím, než aplikace přejde z aktivního do neaktivního stavu (například při minimalizaci nebo příjmu hovoru).
  4. applicationDidEnterBackground: Tato metoda je volána v AppDelegate po přechodu aplikace do režimu na pozadí. V tomto stavu má aplikace omezený čas na vykonání úkolů a může být systémem pozastavena nebo ukončena. UIViewController zůstává v paměti, ale jeho pohled není zobrazován.

Pokud aplikace zůstane na pozadí a není systémem ukončena, při návratu do aktivního stavu prochází UIViewController opačnými fázemi:

  1. applicationWillEnterForeground: Tato metoda je volána v AppDelegate před tím, než se aplikace vrátí z režimu na pozadí do aktivního stavu.
  2. applicationDidBecomeActive: Tato metoda je volána v AppDelegate po tom, co se aplikace opět stane aktivní.
  3. viewWillAppear: Tato metoda je volána před tím, než se pohled kontroléru stane viditelným. Zde můžete aktualizovat UI.
  4. viewDidAppear: Tato metoda je volána po tom, co se pohled kontroléru stane viditelným.

Je důležité poznamenat, že objekt UIViewController není při minimalizaci odstraněn z paměti, pokud jej systém explicitně neuvolní kvůli nedostatku zdrojů (což je vzácné a závisí na mnoha faktorech). Pohled (view) kontroléru může být také odvolán z paměti (viewWillUnload, viewDidUnload - metody byly odstraněny v iOS 6), pokud není v danou chvíli potřeba a systém potřebuje paměť. V takovém případě bude při příštím přístupu k view znovu vytvořen.