我有一些视图控制器,我用以下方法调用:
myViewController *myView = [[myViewController alloc] initWithNibName:nil bundle:nil];
myView.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
[self presentModalViewController:myView animated:YES];
[myView release];
如果我使用该应用程序几次,我会收到内存警告,应用程序会冻结几秒钟!我认为原因是我切换视图但没有解除旧的!! !! !! !! (我将我的出口设置为零并释放它们)
如何切换到新视图后卸载旧视图?
提前致谢
答案 0 :(得分:0)
切换视图时,请务必在myViewController上调用dismissModalViewController:(BOOL)。
答案 1 :(得分:0)
在启动modalViewController的类中,您可以为保留的模态viewcontroller创建一个属性。然后你可以写这样的东西。
//This would be in an action or something...
if (self.myViewControllerProperty == nil) {
self.myViewControllerProperty = [[[MyViewController alloc] initWithNibName:nil bundle:nil] autorelease];
}
[self presentModalViewController:self.myViewControllerProperty animated:YES];
然后而不是设置
myView.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
将该代码移动到modalViewController并写入self.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
我认为看起来更干净,保持每个viewcontroller的配置不会混淆。
正如maclema所说,打电话给dissmissModalViewController
,但你可能正在这样做......
答案 2 :(得分:0)
可能是任何数量的问题,但您不需要(也不能)卸载旧视图。确保在所有视图控制器的viewDidUnload
中释放对象并将插座设置为nil。发生内存警告时将调用viewDidUnload
,因此如果您没有正确处理它,您将会发生泄漏并可能崩溃。除此之外,很难知道你的应用程序正在做什么导致崩溃。