Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/44.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 如何卸载弹出的视图控制器?_Iphone_Uiviewcontroller_Uinavigationcontroller - Fatal编程技术网

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

Iphone 如何卸载弹出的视图控制器?,iphone,uiviewcontroller,uinavigationcontroller,Iphone,Uiviewcontroller,Uinavigationcontroller,使用基于导航的视图层次结构。我有一个根视图控制器和多个视图控制器,当按下按钮时,它们从同一个视图控制器分支出来。当用户按下UINavigationBar上的“上一步”按钮时,将弹出当前viewcontroller,并将显示动画返回到rootviewcontroller 问题是,我希望ViewController在弹出时卸载。似乎他们没有卸货,因为当我回到他们那里时,他们仍然处于他们被弹出时的状态 导航回rootviewcontroller后如何卸载ViewController?-viewUnlo

使用基于导航的视图层次结构。我有一个根视图控制器和多个视图控制器,当按下按钮时,它们从同一个视图控制器分支出来。当用户按下UINavigationBar上的“上一步”按钮时,将弹出当前viewcontroller,并将显示动画返回到rootviewcontroller

问题是,我希望ViewController在弹出时卸载。似乎他们没有卸货,因为当我回到他们那里时,他们仍然处于他们被弹出时的状态

导航回rootviewcontroller后如何卸载ViewController?

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

调用-viewUnload的是-didReceiveMemoryWarning的默认实现

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

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

调用-viewUnload的是-didReceiveMemoryWarning的默认实现


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

in-viewdidense为什么不[自我释放];只需要确保你有一个懒惰的加载程序,这样它就可以在需要时重新加载;只需确保您有一个延迟加载程序,以便它在需要时重新加载。

当您从navigationcontroller中弹出一个viewcontroller时,不应再剩下对viewcontroller的引用,此时应释放viewcontroller。这会给你带来你期望的结果。您可以通过在-dealloc方法中添加断点来测试viewcontroller是否正在解除分配


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

当您从navigationcontroller弹出viewcontroller时,应该没有更多对viewcontroller的引用,此时应该取消分配viewcontroller。这会给你带来你期望的结果。您可以通过在-dealloc方法中添加断点来测试viewcontroller是否正在解除分配


如果未调用dealloc,请检查是否存在保留周期。特别检查子对象是否保留viewcontroller。

好,那么在-viewdissapear中我应该放一些类似于[self dealloc]的东西吗?或者,在rootviewcontroller中,放置类似ifself.viewControllerOne的内容=nil{self.viewControllerOne=nil;}??您不应该手动调用dealloc-dealloc由运行时处理。发布你需要发布的任何东西。我说的“零”建议怎么样?这并不能保证你想让它做什么就做什么。它似乎起到了作用。我只是担心这可能会导致以后的问题。好吧,那么在-viewdissapear中,我应该放一些类似于[self-dealloc]的东西?或者,在rootviewcontroller中,放置类似ifself.viewControllerOne的内容=nil{self.viewControllerOne=nil;}??您不应该手动调用dealloc-dealloc由运行时处理。发布你需要发布的任何东西。我说的“零”建议怎么样?这并不能保证你想让它做什么就做什么。它似乎起到了作用。我只是担心这可能会导致以后的问题。请使用搜索功能查找类似的问题。我在20分钟前看到了完全相同的问题。请使用搜索功能查找类似的问题。大约20分钟前,我看到了完全相同的问题。