Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 当弹出窗口出现时,应用程序崩溃_Objective C_Xcode_Cocoa Touch_Uipopovercontroller_Popover - Fatal编程技术网

Objective c 当弹出窗口出现时,应用程序崩溃

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

在ios 8中,我试图在按下按钮时显示一个popover,但是该应用程序在按下按钮时崩溃。我已正确设置了所有故事板,并使用断点确定是这一行导致了问题,即使要在popover中显示的视图控制器属于FirstViewController类:

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可以不强制转换地分配给任何指针类型。