我正在使用导航控制器将自定义viewController推送到屏幕上。当我完成并弹出它时,我发现为customViewController调用了dealloc方法,但是从不调用“viewDidUnload”方法。这是否意味着视图仍在那里?如果是这样,这对我来说可能是一个记忆问题。如果是这种情况,我应该在我的customViewContoller中的dealloc方法中释放视图吗?感谢。
答案 0 :(得分:1)
通常在推送后释放视图控制器。例如:
UIViewController *myVC = [[UIViewController alloc] init];
[[self navigationController] pushViewController:myVC animated:YES];
[myVC release];
答案 1 :(得分:1)
这不是必需的。当您的UIViewController
子类收到-dealloc
时,您应该释放任何保留的属性。然后它将转到[super dealloc]
。不能肯定地说,但是UIViewController上的-dealloc
也应该处理所有保留属性的转储。因此,您的观点将被适当发布。
不确定为什么-viewDidUnload
没有被调用,但这并不重要。当您弹出视图控制器时,如果您的应用程序的内存压力较低,则可以在不取消分配整个控制器的情况下卸载视图。