【发布时间】:2014-11-03 21:16:57
【问题描述】:
我试图在 ios 8 中按下按钮时出现弹出框,但按下按钮时应用程序崩溃。我已经正确设置了所有情节提要并使用断点我确定是这一行导致了问题,即使要在弹出窗口中显示的视图控制器属于 FirstViewController 类:
UIViewController *vc = destNav.viewControllers.firstObject;
这是崩溃:
*** 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[SecondViewController viewControllers]:无法识别的选择器发送到实例 0x1446ea3a0”
这是我这部分的其余代码:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
// Assuming you've hooked this all up in a Storyboard with a popover presentation style
if ([segue.identifier isEqualToString:@"popover"]) {
UINavigationController *destNav = segue.destinationViewController;
FirstViewController *vc = destNav.viewControllers.firstObject;
// This is the important part
UIPopoverPresentationController *popPC = destNav.popoverPresentationController;
popPC.delegate = self;
}
}
- (UIModalPresentationStyle)adaptivePresentationStyleForPresentationController:(UIPresentationController *)controller {
return UIModalPresentationNone;
}
【问题讨论】:
-
destNav.viewControllers.firstObject最有可能是nil。您也可以在问题中发布错误消息吗? -
发布有关崩溃的详细信息。它究竟是在哪条线上崩溃?崩溃的完整和准确的错误信息是什么?
-
我已将错误消息添加到问题中,并且最初问题中的确切行。
标签: objective-c xcode cocoa-touch uipopovercontroller popover