2011-07-25 19 views
0

我正在使用导航控制器将自定义viewController推送到屏幕上。当我完成并弹出它时,我发现dealloc方法是为customViewController调用的,但“viewDidUnload”方法永远不会被调用。这是否意味着观点仍然存在?如果是这样的话,这可能是一个记忆问题。如果是这样的话,我应该在我的customViewContoller的dealloc方法中释放视图吗?谢谢。iPhone - 我应该手动释放我的customViewController的视图在其dealloc方法?

回答

1

这是没有必要的。当您的UIViewController子类收到-dealloc时,您应该释放所有保留的属性。然后它会到达[super dealloc]。不能肯定地说,但UIViewController上的-dealloc也应该处理它所有保留的属性。因此您的观点将被适当地发布。

不知道为什么-viewDidUnload没有被调用,但它应该没有关系。也许如果你弹出视图控制器时你的应用程序的内存压力较低,视图可能会卸载而不释放整个控制器。

1

通常,您在推送后释放视图控制器。例如:

UIViewController *myVC = [[UIViewController alloc] init]; 
[[self navigationController] pushViewController:myVC animated:YES]; 
[myVC release]; 
+0

哦,是的,我做到了。虽然我在谈论viewController的视图。 – Tim

+0

你的意思是myVC.view? – onnoweb

+0

是的,这就是我的意思 – Tim

相关问题