Objective c 当弹出窗口出现时,应用程序崩溃
在ios 8中,我试图在按下按钮时显示一个popover,但是该应用程序在按下按钮时崩溃。我已正确设置了所有故事板,并使用断点确定是这一行导致了问题,即使要在popover中显示的视图控制器属于FirstViewController类:Objective c 当弹出窗口出现时,应用程序崩溃,objective-c,xcode,cocoa-touch,uipopovercontroller,popover,Objective C,Xcode,Cocoa Touch,Uipopovercontroller,Popover,在ios 8中,我试图在按下按钮时显示一个popover,但是该应用程序在按下按钮时崩溃。我已正确设置了所有故事板,并使用断点确定是这一行导致了问题,即使要在popover中显示的视图控制器属于FirstViewController类: UIViewController *vc = destNav.viewControllers.firstObject; 这是坠机事件: ***由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[SecondVie
UIViewController *vc = destNav.viewControllers.firstObject;
这是坠机事件:
***由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[SecondViewController ViewController]:未识别的选择器已发送到实例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;
}
尝试按以下方式强制转换视图控制器:
FirstViewController *vc = (FirstViewController *)destNav.viewControllers.firstObject;
我解决了!很抱歉,我这么晚才发帖 您只需排除该行
FirstViewController *vc = destNav.viewControllers.firstObject;
尽管所有教程都显示了这一行,但destNav.viewControllers.firstObject很可能为零。你能在你的问题中也发布错误信息吗?发布关于崩溃的详细信息。它到底在哪一条线上撞车?崩溃的完整和准确的错误消息是什么?我已将错误消息添加到问题中,问题的第一行是正确的。1指针强制转换仅适用于编译时,在运行时无效。2此强制转换是不必要的,因为firstObject返回的id可以不强制转换地分配给任何指针类型。