UIActionSheet showInView 上的 iPad NSInternalInconsistencyException

Posted

技术标签:

【中文标题】UIActionSheet showInView 上的 iPad NSInternalInconsistencyException【英文标题】:iPad NSInternalInconsistencyException on UIActionSheet showInView 【发布时间】:2011-02-25 22:07:56 【问题描述】:

在我的通用 iPhone/iPad 应用程序中,当我尝试在模式视图中显示操作表时,我只会在 iPad 上崩溃。当我在主视图中时它不会崩溃。这个过程是这样的:

(用户单击按钮以呈现模态视图)

-(IBAction)showModal:(id)sender 
    modalController.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
    [self presentModalViewController:modalController animated:YES];

(然后,在指定的时间,调用一个函数,然后调用 UIActionSheet)

actionSheet = [[UIActionSheet alloc] initWithTitle:@"Alarm"
                                        delegate:self
                               cancelButtonTitle:nil
                          destructiveButtonTitle:@"Dismiss"
                                   otherButtonTitles:nil];
[actionSheet showInView:self.view];

这给了我以下错误:

*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Invalid parameter not satisfying: view != nil'

有人知道为什么我只在 iPad 上收到此错误吗?谢谢!

【问题讨论】:

self.view 为零。您应该向我们展示更多代码... 有很多代码我不知道包含什么相关?问题是它适用于 iPhone,而不是 iPad。 你有没有想过这个问题?文档建议在 iPad 上调用 showFromRect:inView:animated:,但并不是说 showInView: 是不可接受的。 developer.apple.com/library/ios/DOCUMENTATION/UIKit/Reference/… 【参考方案1】:

你不应该使用吗?:

UIActionsheet *actionSheet = [[UIActionSheet alloc] initWithTitle:@"Alarm"
                                    delegate:self
                           cancelButtonTitle:nil
                      destructiveButtonTitle:@"Dismiss"
                               otherButtonTitles:nil];

[actionSheet showInView:[self view]];

【讨论】:

对不起,我忽略了在它之前包含我已经定义的行:UIActionsheet *actionSheet;

以上是关于UIActionSheet showInView 上的 iPad NSInternalInconsistencyException的主要内容,如果未能解决你的问题,请参考以下文章

从 UIActionSheet 访问 UIPopoverController

UIActionSheet 只显示一次

swift 创建第一个UIAlertView 和UIActionSheet

iOS:简单使用UIAlertVIew和UIActionSheet

如何知道视图层次结构中是不是显示 UIActionSheet?

UIActionSheet 中途出现