Iphone 删除视图并弹出后将nil分配给UIViewController时崩溃
我有一个序列,需要从类外弹出一个Iphone 删除视图并弹出后将nil分配给UIViewController时崩溃,iphone,ios,cocoa-touch,uiview,uiviewcontroller,Iphone,Ios,Cocoa Touch,Uiview,Uiviewcontroller,我有一个序列,需要从类外弹出一个UIViewcontroller。从服务器上我将得到一个注销事件,如果视图控制器打开,我需要弹出它。我这样做是为了找到俯视图控制器并弹出它: UIViewController *top_view_ctrlr = [self.navigationController topViewController]; if (top_view_ctrlr.view != nil) { [top_view_ctrlr.view removeFromSuperview];
UIViewcontroller
。从服务器上我将得到一个注销事件,如果视图控制器打开,我需要弹出它。我这样做是为了找到俯视图控制器并弹出它:
UIViewController *top_view_ctrlr = [self.navigationController topViewController];
if (top_view_ctrlr.view != nil) {
[top_view_ctrlr.view removeFromSuperview];
}
// Popping only the top view controller.
[top_view_ctrlr.navigationController popToViewController:dash animated:NO];
然后我为所有创建的视图控制器设置nil
,例如:
if (history != nil) {
history = nil; // Here history is an view controller. Because it is not on top, I am setting only nil here to release all its memory.
}
当我使用ARC时,我想我不需要太担心历史中的内存释放。然而,它正在与以下内容崩溃:
[历史记录\u类表视图:CellForRowatineXpath:]
:发送到解除分配实例的消息
有什么问题吗?为什么当我将对象设置为
nil
时它会崩溃?为什么要从superview中删除topViewController
的视图?您不需要在导航控制器中执行此操作,popToViewController:
会自动执行此操作,删除“导航控制器背后”的视图可能会导致崩溃。为什么要从其superview中删除topViewController
的视图?您不应该在导航控制器中执行此操作,popToViewController:
会自动执行此操作,删除“导航控制器背后”的视图可能会导致崩溃。我想我知道您计划实现什么,但我担心您对如何使用UIViewController和UINavigationController缺乏一些基本的了解,这就是为什么我建议您先阅读以下内容:
我相信它将帮助您解决当前的问题和未来的问题。我想我知道您计划实现什么,但我担心您对如何使用UIViewController和UINavigationController缺乏一些基本的了解,这就是为什么我建议您先阅读以下内容:
我相信这将有助于解决您当前的问题和未来的问题。谢谢您的回答。。实际上,我这样做是为了避免在所有类中添加一个方法来执行pop操作。那么,将对象分配给nil就不是问题了?谢谢你的回答。。实际上,我这样做是为了避免在所有类中添加一个方法来执行pop操作。那么,将对象分配给nil就不是问题了?