Τι συμβαίνει με το UIViewController όταν ελαχιστοποιείτε την εφαρμογή;
sobes.tech AI
Απάντηση από AI
Όταν ελαχιστοποιείτε την εφαρμογή, ο UIViewController που εμφανίζεται αυτήν τη στιγμή περνά από τις ακόλουθες φάσεις κύκλου ζωής:
- viewWillDisappear: Η μέθοδος καλείται πριν η προβολή του ελεγκτή γίνει αόρατη. Εδώ μπορείτε να αποθηκεύσετε την κατάσταση του UI ή να ακυρώσετε λειτουργίες.
- viewDidDisappear: Η μέθοδος καλείται αφού η προβολή του ελεγκτή έχει αποκρυφθεί πλήρως.
- applicationWillResignActive: Καλείται στο
AppDelegateπριν η εφαρμογή μεταβεί από ενεργή σε ανενεργή κατάσταση (π.χ. κατά την ελαχιστοποίηση ή λήψη κλήσης). - applicationDidEnterBackground: Καλείται στο
AppDelegateαφού η εφαρμογή μεταβεί σε κατάσταση background. Σε αυτήν την κατάσταση, η εφαρμογή έχει περιορισμένο χρόνο για την εκτέλεση εργασιών και μπορεί να ανασταλεί ή να τερματιστεί από το σύστημα. ΤοUIViewControllerπαραμένει στη μνήμη, αλλά η προβολή του δεν εμφανίζεται.
Αν η εφαρμογή παραμείνει στο background και δεν τερματιστεί από το σύστημα, κατά την επιστροφή σε ενεργή κατάσταση, το UIViewController περνά από τις αντίστροφες φάσεις:
- applicationWillEnterForeground: Καλείται στο
AppDelegateπριν η εφαρμογή επιστρέψει από το background σε πρώτο πλάνο. - applicationDidBecomeActive: Καλείται στο
AppDelegateαφού η εφαρμογή γίνει ξανά ενεργή. - viewWillAppear: Καλείται πριν η προβολή του ελεγκτή γίνει ορατή. Εδώ μπορείτε να ενημερώσετε το UI.
- viewDidAppear: Καλείται αφού η προβολή του ελεγκτή γίνει ορατή.
Είναι σημαντικό να σημειωθεί ότι το αντικείμενο UIViewController δεν διαγράφεται από τη μνήμη κατά την ελαχιστοποίηση, εκτός αν το σύστημα το αποδεσμεύσει ρητά λόγω έλλειψης πόρων (που συμβαίνει σπάνια και εξαρτάται από πολλούς παράγοντες). Η προβολή (view) του ελεγκτή μπορεί επίσης να αποδεσμευτεί από τη μνήμη (viewWillUnload, viewDidUnload - μέθοδοι που αφαιρέθηκαν στο iOS 6) αν δεν χρειάζεται αυτήν τη στιγμή και το σύστημα χρειάζεται μνήμη. Σε αυτήν την περίπτωση, κατά την επόμενη πρόσβαση στη view, αυτή θα δημιουργηθεί ξανά.