当我尝试将视图从A切换到B时,一切正常。但是当我想从B回到A时,应用程序会崩溃吗?
当我删除自动释放时,应用程序正常工作,但随后泄漏。
以下是切换视图的代码:
-(IBAction)switchToExplainView:(id)sender{
explainViewController = [[ExplainViewController alloc]
initWithNibName:@"ExplainViewController"
bundle:nil];
[self.view addSubview:explainViewController.view];
}
答案 0 :(得分:0)
您必须同时考虑控制器和视图。
控制器将保持其视图,但您需要保持该控制器。如果您(自动)释放它,它可能很容易被取消分配,如果您尝试访问它,您的应用程序将崩溃。
视图本身将由它的超级视图发布,但不是控制器。
一种可能的解决方案是将该控制器存储在管理(切换)视图的类的ivar中。只有在完成它们后才能释放它们。
答案 1 :(得分:0)
您是否使用导航控制器在视图之间来回切换?如果是,您可能想要使用[myNavController pushViewController:... animated:...]
消息。之后,您可以轻松发布explainViewController
。