2

我在介绍一个modalViewController。在我解雇了模态视图控制器后:iPhone:莫代尔视图控制器泄漏内存

- (void)dismissModalViewControllerAnimated:(BOOL)animated 

..视图仍在内存中。我如何解雇它以便使用内存?

谢谢。

+0

只有保留计数= 1的对象在释放时调用其dealloc。 – 2011-07-04 07:05:51

回答

0

当你展示你的模态视图控制器时,你需要释放它。

+0

当然。在我介绍modalViewController之前,我首先分配一个UINavigationController和UIViewController,然后将UIViewController作为rootViewController添加到UINavigationController中,然后展示modalViewController并释放UINavigationController和UIViewController。还有什么要做? – burki 2010-04-25 14:09:27

+0

确保所有这些都是从您的代码中释放。对他们中的任何一个留任将持有你的控制器。检查您可能已经传入但未发布的其他值。 – 2010-04-25 14:13:37

0

我遇到同样的问题。我只是暂时保留ViewController,直到我调用presentModalViewController,然后释放alloc。但是在dismissModalViewControllerAnimated之后,我从来没有得到ViewController的dealloc。

如果我添加从视图控制器自我释放,然后我得到这个控制返回到事件循环后:

程序接收到的信号:“EXC_BAD_ACCESS”。 objc_msg发送

+0

只有保留计数= 1的对象在释放时调用其dealloc。 – 2011-07-04 07:02:12

0

具有相同的问题。我有一个模块化的NavigationController,并且作为这个NavigationController的rootController,我有简单的ViewController对象。很少见的情况是,当我使用Allocations运行我的应用程序时,在关闭了modalController之后,在这种情况下导航控制器,NavigationController消失了,但rootController仍保留在内存中,内存不断增长和增长。 (注意:仪器泄漏不显示任何泄漏,应用程序在设备上运行,而不是在模拟器上运行)。

+0

是否将视图控制器添加为导航栏的rootviewcontroller后发布?并将所有的IB对象放在viewDidUnload中为零。仍然是你的问题。让我们允许看到你的代码。 – 2011-07-04 07:05:10

0

当你展示一个模态视图控制器时,你将会明确地分配,所以当你分配时需要释放它,所以请释放你在模态控制器中呈现的视图控制器。