Sobes.tech
Middle

Mi történik a UIViewController-rel az alkalmazás minimalizálásakor?

sobes.tech MI

Válasz az MI-től

Amikor az alkalmazást minimalizálják, a jelenleg megjelenített UIViewController a következő életciklus szakaszokon megy keresztül:

  1. viewWillDisappear: Ez a metódus akkor hívódik meg, mielőtt a vezérlő nézete láthatatlanná válik. Itt elmentheti a UI állapotát vagy megszakíthatja a műveleteket.
  2. viewDidDisappear: Ez a metódus akkor hívódik meg, miután a vezérlő nézete teljesen elrejtésre került.
  3. applicationWillResignActive: Ez a metódus a AppDelegate-ben hívódik meg, mielőtt az alkalmazás inaktív állapotba lépne (például minimalizálás vagy hívás fogadása esetén).
  4. applicationDidEnterBackground: Ez a metódus a AppDelegate-ben hívódik meg, miután az alkalmazás háttérbe lépett. Ebben az állapotban az alkalmazásnak korlátozott ideje van feladatok végrehajtására, és a rendszer felfüggesztheti vagy leállíthatja. A UIViewController a memóriában marad, de a nézete nem jelenik meg.

Ha az alkalmazás a háttérben marad, és nem zárja be a rendszer, akkor az aktív állapotba való visszatéréskor a UIViewController a fordított szakaszokon megy keresztül:

  1. applicationWillEnterForeground: Ez a AppDelegate-ben hívódik meg, mielőtt az alkalmazás visszatérne a háttérről az első tervre.
  2. applicationDidBecomeActive: Ez a AppDelegate-ben hívódik meg, miután az alkalmazás újra aktívvá válik.
  3. viewWillAppear: Ez akkor hívódik meg, mielőtt a vezérlő nézete láthatóvá válik. Itt frissítheti a UI-t.
  4. viewDidAppear: Ez akkor hívódik meg, miután a vezérlő nézete láthatóvá vált.

Fontos megjegyezni, hogy a UIViewController objektum nem kerül törlésre a memóriából a minimalizáláskor, kivéve, ha a rendszer kifejezetten kiüríti az erőforrások hiánya miatt (ami ritka, és sok tényezőtől függ). A vezérlő view-ja is kiüríthető a memóriából (viewWillUnload, viewDidUnload - módszerek, amelyeket az iOS 6-ban eltávolítottak), ha jelenleg nincs rá szükség, és a rendszer memóriát igényel. Ebben az esetben a view újra létrejön a következő hozzáféréskor.