释放与导航控制器关联的视图控制器

时间:2012-04-26 18:31:12

标签: ios memory-management uiviewcontroller uinavigationcontroller release-management

我有一个导航控制器,而我似乎无法理解的一件事就是当我弹出一个视图控制器时它没有被释放。

当我将它添加到导航控制器时,我将其释放,这对我意味着现在导航控制器负责管理视图控制器。

但是当我弹出导航控制器时,我可以看到弹出的视图控制器仍然存在。我知道这是因为通知观察员仍在执行。

此外,我尝试从视图中删除导航控制器,释放并将其设置为nil,但仍然我的视图控制器仍在闲逛。

在弹出导航控制器或释放导航控制器本身时,我在何处以及如何从导航控制器中释放视图控制器?

感谢。

1 个答案:

答案 0 :(得分:2)

您提到通知观察员...是否已将视图控制器添加到通知中心?如果是这种情况,我认为通知中心正在保留视图控制器。在viewWillDisappear中将其作为观察者移除然后在dealloc中抛出NSLog并查看它是否正在正确释放。