2011-10-18 31 views
2

我有自定義控件如tabbar顯示許多控制器其中一些也有我的tabbar與其他控制器,所以,我的應用程序使用大量的內存,因爲每個控制器都存儲在內存中。所以我想卸載不可見控制器,但是我沒有找到任何卸載UIViewController的方法。我該怎麼做?如何卸載UIViewController的視圖

PS。我不能使用UITabBarController,實在不行。

回答

1

你不知道。 UIViewControllers不會在低內存中卸載,只是他們的意見。

這發生在您自己的視圖控制器上的didReceiveMemoryWarning,並在低內存警告發生時自動調用。

重寫此操作並卸載任何可在viewDidLoad中重新創建的內容。

1

從其超級視圖中移除視圖控制器視圖並釋放控制器。任務完成。

+0

它不適合,我需要保持控制數據 - 來自互聯網數據,如果加載會出現每次用戶期望控制器的負荷。重新制作更多的MVC版本,我不能將它應用得太大。 – Tesseract

+0

在這種情況下,視圖會在傳遞didReceiveMemoryWarning時自動卸載,但您現在應清除viewDidLoad中將重新創建的所有viewDidUnload內容。 –

1

我知道這是一箇舊線程,但可能對某人有用。

您可以卸載viewControllers查看致電:

[viewControllerWhoseViewYouWantToUnload didReceiveMemoryWarning];