应用程序会在呈现UIActionSheet时经常崩溃

时间:2012-10-09 22:45:36

标签: ios ios5 ios6

当调用显示操作表时,我间歇性地收到以下错误。

  

断言失败 - [UIActionSheet showInView:]

     

由于未捕获的异常'NSInternalInconsistencyException'而终止应用程序,原因:'无效的参数不满足:view!= nil'

现在在这种情况下,我没有更换屏幕。当本地通知被触发时,会显示UIActionSheet,并且我有一个观察者在此视图上调用本地方法:我将该属性标记为强。当行动表被解雇时,我也将其设置为零。我正在使用UI的故事板。碰撞它是相当可重复的,可能不到5次尝试。 (谢天谢地,我有这个想法)。有什么建议接下来要尝试什么?我真的把头发拉出来了。我在这个主题上看到的大多数问题都指向选择完成后发生的崩溃。在我的情况下,它是在介绍和间歇性。另外,对于它的价值,这个特殊的视图是嵌入式导航控制器中的几个堆栈。主页> tableview>详细选择> viewController有问题。到目前为止,在iOS 5.1和iOS 6的测试中也出现了同样的问题。我认为它与节目InView的目标有关。

self.actionSheet = [[UIActionSheet alloc]
                            initWithTitle:@"Select Choice" delegate:self cancelButtonTitle:@"Not Yet" destructiveButtonTitle:@"Do this Now" otherButtonTitles:nil];

[self.actionSheet showInView:self.parentViewController.tabBarController.view];

2 个答案:

答案 0 :(得分:1)

根据您的代码,调用此代码时似乎未设置self.tabBarControllerself.tabBarController.tabBar

尝试使用:

[self.actionSheet showInView:self.view];

编辑:已修复错误

编辑2 :使操作表显示在标签栏上

[self.actionSheet showInView:[[UIApplication sharedApplication].delegate window]];

答案 1 :(得分:0)

问题的答案是我没有删除NSNotificationCenter观察者。只有当@zsnow推荐的更改解决了崩溃但导致出现重复的UIAlertSheet对话框时,才会显而易见。

在我的特定情况下,添加以下内容解决了我的问题。谢谢大家的帮助。这些建议让我足够接近终点线。

-(void)viewWillDisappear:(BOOL)animated {


[[NSNotificationCenter defaultCenter] removeObserver:self];

}