/ / Jak wyładować widok UIViewController - iphone, objective-c, ios, cocoa-touch, uikit

Jak zwolnić widok UIViewController - iphone, object-c, ios, cocoa-touch, uikit

Mam niestandardową kontrolę, taką jak pasek kart, który wyświetlawiele kontrolerów, niektóre z nich mają również mój pasek z innymi kontrolerami, więc moja aplikacja zużywa dużo pamięci, ponieważ każdy kontroler jest przechowywany w pamięci. Chcę więc wyładować niewidoczny kontroler, ale nie znalazłem żadnej metody na wyładowanie UIViewController. Jak mogę to zrobić?

PS. Nie mogę używać UITabBarController, naprawdę nie mogę.

Odpowiedzi:

1 dla odpowiedzi № 1

Ty nie. UIViewControllers nie są rozładowywane przy małej ilości pamięci, tylko ich widoki.

To się dzieje w didReceiveMemoryWarning na własnych kontrolerach widoku i jest wywoływany automatycznie, gdy pojawi się ostrzeżenie o małej ilości pamięci.

Zastąp to i zwolnij wszystko, co można odtworzyć w programie viewDidLoad.


1 dla odpowiedzi nr 2

Usuń widok kontrolerów widoku z widoku nadzoru i zwolnij kontroler. Zadanie wykonane.


1 dla odpowiedzi nr 3

Wiem, że to stary wątek, ale może być przydatny dla kogoś.

Możesz zwolnić widok viewControllers, wywołując:

[viewControllerWhoseViewYouWantToUnload didReceiveMemoryWarning];