Wat gebeurt er met UIViewController wanneer de app wordt geminimaliseerd?
sobes.tech AI
Antwoord van AI
Bij het minimaliseren van de app doorloopt de momenteel weergegeven UIViewController de volgende levenscyclusfasen:
- viewWillDisappear: Deze methode wordt aangeroepen voordat de view van de controller onzichtbaar wordt. Hier kunt u de UI-status opslaan of operaties annuleren.
- viewDidDisappear: Deze methode wordt aangeroepen nadat de view van de controller volledig is verborgen.
- applicationWillResignActive: Wordt aangeroepen in de
AppDelegatevoordat de app overgaat van actief naar inactief (bijvoorbeeld bij minimaliseren of het ontvangen van een oproep). - applicationDidEnterBackground: Wordt aangeroepen in de
AppDelegatenadat de app naar de achtergrond is gegaan. In deze staat heeft de app een beperkte tijd om taken uit te voeren en kan door het systeem worden gepauzeerd of beëindigd. DeUIViewControllerblijft in het geheugen, maar zijn view wordt niet weergegeven.
Als de app in de achtergrond blijft en niet door het systeem wordt afgesloten, doorloopt de UIViewController bij terugkeer naar de actieve staat de omgekeerde fasen:
- applicationWillEnterForeground: Wordt aangeroepen in de
AppDelegatevoordat de app terugkeert van de achtergrond naar de voorgrond. - applicationDidBecomeActive: Wordt aangeroepen in de
AppDelegatenadat de app weer actief is geworden. - viewWillAppear: Wordt aangeroepen voordat de view van de controller zichtbaar wordt. Hier kunt u de UI bijwerken.
- viewDidAppear: Wordt aangeroepen nadat de view van de controller zichtbaar is geworden.
Het is belangrijk op te merken dat het object UIViewController niet uit het geheugen wordt verwijderd bij minimaliseren, tenzij het systeem het expliciet vrijmaakt vanwege gebrek aan bronnen (wat zelden gebeurt en afhankelijk is van veel factoren). De view (view) van de controller kan ook uit het geheugen worden verwijderd (viewWillUnload, viewDidUnload - methoden verwijderd in iOS 6) als deze op dat moment niet nodig is en het systeem geheugen nodig heeft. In dat geval wordt de view opnieuw aangemaakt bij de volgende toegang.