如何卸载弹出的视图控制器?

时间:2010-01-31 06:46:55

标签: iphone uiviewcontroller uinavigationcontroller

使用基于导航的视图层次结构。我有一个根视图控制器,以及按下按钮时分支出来的多个视图控制器。当用户按下UINavigationBar上的后退按钮时,将弹出当前的viewcontroller,并且显示动画回到rootviewcontroller。

问题是,我希望viewcontrollers在弹出时能够进行UNLOAD。好像他们没有卸货,因为当我回到他们身边时,他们仍处于弹出状态。

如何在导航回rootviewcontroller后卸载viewcontrollers?

3 个答案:

答案 0 :(得分:1)

在应用程序收到内存不足通知后调用

-viewUnload

-didReceiveMemoryWarning的默认实现是-viewUnload

您可能想要做的是根据您所描述的内容将您想要做的事情放入-viewDidDisappear

答案 1 :(得分:0)

当您从navigationcontroller弹出一个viewcontroller时,应该不再有对viewcontroller的引用,并且此时应该释放viewcontroller。这应该会给你你期望的结果。您可以通过在 -dealloc 方法中添加断点来测试是否要取消分配viewcontroller。

如果没有调用dealloc,请检查是否存在保留周期。具体检查子对象是否保留了viewcontroller。

答案 2 :(得分:-3)

in -viewDidDisappear为什么不[自我释放];只需要确保你有一个懒惰的加载器,所以它会在需要时加载。