【问题标题】:UINavigationController application crashed with error msg: 'Popovers cannot be presented from a view which does not have a window.'UINavigationController 应用程序因错误消息而崩溃:“无法从没有窗口的视图中呈现弹出框。”
【发布时间】:2011-04-27 07:42:02
【问题描述】:

在我的导航应用程序中,当执行以下步骤时,应用程序总是崩溃并显示错误消息“无法从没有窗口的视图中呈现弹出窗口”

Step1:点击RootViewController中的一行会推送到detailsViewController,点击 detailsViewController 中的按钮显示popOverController,成功了!

Step2:点击后退按钮会弹出RootViewController,再次执行Step1,Crashed!

下面的代码可以打印窗口的描​​述:

- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];
    NSLog(@"%@", self.view.window);
}

按钮的动作 Step1 将打印窗口,Step2 将打印 nil:

- (void)btn_click:(id)sender {
    NSLog(@"%@", self.view.window);
    [self._popOver presentPopoverFromRect:[sender frame] inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
}

那么,我错过了什么?

【问题讨论】:

    标签: iphone uipopovercontroller


    【解决方案1】:

    这里没什么好说的,但听起来你的导航控制器逻辑在某个地方是错误的。我可能会使用第二个视图控制器生成一个新的基本导航控制器项目,确保您可以使用它来回导航并与您的项目进行比较。如果删除弹出框,一切正常吗?

    【讨论】:

    • 您好@user697562,感谢您的回复,实际上我生成了一个新的导航项目,问题再次得到解决。我使用的是 XCode4 和 ios4.3 sdk。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多