【发布时间】:2015-02-24 22:42:37
【问题描述】:
UIPopoverController *popCtrl = [[UIPopoverController alloc] initWithContentViewController:self.rootViewController.navigationController];
popCtrl.delegate = self;
[popCtrl presentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
此代码在按钮操作中,其中按钮是“发送者”。
带有 presentPopoverFromBarButtonItem 的行导致抛出异常,原因是:Application tried to present modally an active controller DetailViewController: 0x15a54c00。在这种情况下,DetailViewController 是“self”,它只是 popCtrl 的一个委托,所以我看不出它是如何尝试以模态方式呈现的。它应该呈现 rootViewController.navigationController。
正如您可能从名称中猜到的那样,rootViewController 和 detailViewController 位于 SplitViewController 中,但在尝试使用弹出框呈现 rootViewController 之前,它已从 SplitViewController 中移除。
这只发生在使用 iOS 8 SDK 构建的 iOS 8 上。它也不是 100% 可重现的。大多数情况下会发生此异常,但有时在我重新启动应用程序后它根本不会发生,直到我重新运行应用程序,然后它又开始再次发生。 (我把它放在一个 try/catch 中,所以我知道它每次运行可能会发生多次。)
我几乎可以肯定这是 SDK 中的另一个 iOS 8 错误,但有人想出解决方法吗?
【问题讨论】:
-
这个bug在iOS8.1中依然存在
-
请参考此链接,希望对您有所帮助stackoverflow.com/questions/25094028/…
-
感谢您的提示,但我认为这对我没有帮助,因为我没有使用故事板或 segues。