Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/43.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 删除视图并弹出后将nil分配给UIViewController时崩溃_Iphone_Ios_Cocoa Touch_Uiview_Uiviewcontroller - Fatal编程技术网

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就不是问题了?