Kas vyksta su UIViewController, kai programa yra sumažinta?
sobes.tech AI
Atsakymas iš AI
Užsukus programai, UIViewController, kuris šiuo metu yra rodomas vartotojui, pereina per šias gyvavimo ciklo stadijas:
- viewWillDisappear: Šis metodas kviečiamas prieš tai, kai kontrolerio vaizdas nustos būti matomas. Čia galima išsaugoti UI būseną arba atšaukti operacijas.
- viewDidDisappear: Šis metodas kviečiamas po to, kai kontrolerio vaizdas visiškai paslėptas.
- applicationWillResignActive: Šis metodas kviečiamas
AppDelegateprieš tai, kai programa pereina iš aktyvaus į neaktyvų būseną (pavyzdžiui, skambučio ar minimizavimo metu). - applicationDidEnterBackground: Šis metodas kviečiamas
AppDelegatepo to, kai programa pereina į foninį režimą. Šiuo būdu programa turi ribotą laiką vykdyti užduotis ir gali būti sustabdyta arba užbaigta sistema.UIViewControllertuo metu lieka atmintyje, tačiau jo vaizdas nėra rodomas.
Jei programa lieka fone ir nėra užbaigta sistema, vėlesnio aktyvinimo metu UIViewController pereina atgal į šias stadijas:
- applicationWillEnterForeground: Šis metodas kviečiamas
AppDelegateprieš tai, kai programa grįžta iš fono į aktyvų būseną. - applicationDidBecomeActive: Šis metodas kviečiamas
AppDelegatepo to, kai programa vėl tapo aktyvi. - viewWillAppear: Šis metodas kviečiamas prieš tai, kai kontrolerio vaizdas taps matomas. Čia galima atnaujinti UI.
- viewDidAppear: Šis metodas kviečiamas po to, kai vaizdas tapo matomas.
Svarbu pažymėti, kad pats UIViewController objektas nėra ištrinamas iš atminties uždarant programą, jei jis nėra aiškiai iškrautas sistemos dėl išteklių trūkumo (tai retai atsitinka ir priklauso nuo daugelio veiksnių). Kontrolerio vaizdas (view) taip pat gali būti iškrautas iš atminties (viewWillUnload, viewDidUnload - metodai buvo pašalinti iOS 6), jei jis šiuo metu nereikalingas ir sistema reikalinga atmintis. Tokiu atveju, kitą kartą pasiekiant view, jis bus sukurtas iš naujo.