Ce se întâmplă cu UIViewController atunci când minimizați aplicația?
sobes.tech AI
Răspuns de la AI
Când aplicația este minimizată, UIViewController care este afișat în prezent trece prin următoarele etape ale ciclului de viață:
- viewWillDisappear: Metoda este apelată înainte ca vizualizarea controlerului să devină invizibilă. Aici puteți salva starea UI sau anula operațiuni.
- viewDidDisappear: Metoda este apelată după ce vizualizarea controlerului a fost complet ascunsă.
- applicationWillResignActive: Se apelează în
AppDelegateînainte ca aplicația să treacă din starea activă în inactivă (de exemplu, la minimizare sau primirea unui apel). - applicationDidEnterBackground: Se apelează în
AppDelegatedupă ce aplicația a trecut în fundal. În această stare, aplicația are un timp limitat pentru a executa sarcini și poate fi suspendată sau închisă de sistem.UIViewControllerrămâne în memorie, dar vizualizarea sa nu este afișată.
Dacă aplicația rămâne în fundal și nu este închisă de sistem, la revenirea în starea activă, UIViewController trece prin etapele inverse:
- applicationWillEnterForeground: Se apelează în
AppDelegateînainte ca aplicația să revină din fundal în prim-plan. - applicationDidBecomeActive: Se apelează în
AppDelegatedupă ce aplicația a devenit din nou activă. - viewWillAppear: Se apelează înainte ca vizualizarea controlerului să devină vizibilă. Aici puteți actualiza UI-ul.
- viewDidAppear: Se apelează după ce vizualizarea controlerului a devenit vizibilă.
Este important de menționat că obiectul UIViewController nu este eliminat din memorie la minimizare, cu excepția cazului în care sistemul îl descarcă explicit din cauza lipsei de resurse (ceea ce se întâmplă rar și depinde de mulți factori). Vizualizarea (view) a controlerului poate fi, de asemenea, descărcată din memorie (viewWillUnload, viewDidUnload - metode eliminate în iOS 6) dacă nu este necesară în acel moment și sistemul are nevoie de memorie. În acest caz, la următoarea accesare a view, aceasta va fi recreată.