2012-01-10 127 views
1

当我尝试将视图从A切换到B时,一切正常。但是当我想从B回到A时,应用程序崩溃了?内存泄漏自动释放崩溃

当我删除autorelease应用程序工作正常,但然后泄漏。

下面是用于切换视图的代码:

-(IBAction)switchToExplainView:(id)sender{ 

explainViewController = [[ExplainViewController alloc] 
         initWithNibName:@"ExplainViewController" 
         bundle:nil]; 

[self.view addSubview:explainViewController.view]; 

}

回答

0

你必须要考虑两个控制器和视图。

控制器将保留其视图,但您需要保持该控制器。如果你(自动)释放它,它可能很容易被释放,如果你尝试访问它,你的应用程序将崩溃。

视图本身将由它的超级视图释放,但不是控制器。

一个可能的解决方案是将该控制器存储在您的班级中,管理(切换)视图。只有在你完成它们之后才能释放它们。

+0

你的意思是这样的吗? http://stackoverflow.com/questions/7542143/moving-between-xibs-ios,如果你有其他的例子,我将不胜感激。 – user997841 2012-01-10 12:51:13

0

您是否使用导航控制器在视图之间来回切换?如果是,您可能需要使用[myNavController pushViewController:... animated:...]消息。之后,您可以轻松发布您的explainViewController

+0

我没有使用导航控制器,我已经试过,但我得到了另一个错误:)。我会尝试当这不工作。 Thx提前 – user997841 2012-01-10 09:14:17

相关问题