在keyWindow上显示UIActionSheet失败视图!= nil断言

时间:2012-01-04 08:26:47

标签: iphone cocoa-touch ipad ios4 ios5

我有一个奇怪的问题,

我正在尝试使用以下方法在UIWindow对象上显示UIActionSheet:

[[UIApplication sharedApplication] keyWindow];

以下代码上升view != nil断言失败

UIWindow *mainWindow = [[UIApplication sharedApplication] keyWindow];

if(mainWindow != nil)
    [menuUIActionSheet showInView:mainWindow];

以上在iOS 4.3下失败,在iOS 5.0下有效。

  

* 断言失败 - [UIActionSheet showInView:],/ SourceCache / UIKit_Sim / UIKit-1448.89 / UIActionSheet.m:4402

     

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

2 个答案:

答案 0 :(得分:0)

可能你必须传递一个真正的UIView实例。您可以尝试使用[[UIApplication sharedApplication] keyWindow].rootViewController.view

答案 1 :(得分:0)

@interface AppDelegate : UIResponder 

制作属性

@property (strong, nonatomic)   UIWindow *window;


@implementation AppDelegate

@synthesize window = _window;

然后使用

AppDelegate.window