gpt4 book ai didi

ios - 应用程序试图呈现一个 nil Model View Controller

转载 作者:行者123 更新时间:2023-11-29 13:16:44 25 4
gpt4 key购买 nike

我目前正在尝试在我的应用程序中实现一个介绍性(教程)部分,我想为用户提供随时查看它的选项。我的应用程序的主要部分由 UIViewController XIB 文件(ViewController_iPhone.xibViewController_iPad.xib)组成,为了我的介绍性 View ,我发现使用它更容易 Storyboard。因此,快速总结一下:我正在尝试从主 ViewController (XIB) 切换到 Storyboard 中的起始 ViewController,具体取决于设备类型 -> 这一切都从点击 UIButton 开始。

在我的 Storyboard 中,我分配了单独的 Storyboard ID,因此无论是 iPad、iPhone 还是 iPhone-4inch,它都会加载正确的 View :

Storyboard ID:3-Slide1 (iPad)、4-Slide1 (iPhone)、5-Slide1 (iPhone-4inch)。

Screenshot

这是 ViewController.m 中的按钮代码:

NSString *nibName;
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
nibName = @"3-Slide1";
} else {
if ([UIScreen mainScreen].bounds.size.height == 480.0) {
nibName = @"4-Slide1";
} else {
nibName = @"5-Slide1";
}
}

IntroViewController *introViewController = [self.storyboard instantiateViewControllerWithIdentifier:nibName];

[self presentViewController:introViewController animated:YES completion:nil];

SIGABRT 错误:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason:
'Application tried to present a nil modal view controller on target
<ViewController: 0x20865170>.

为什么会出现这个错误?

注意:有很多帖子具有相同的一般 SIGABRT 错误,但似乎都有不同的问题。

最佳答案

如果您以模态方式推送它,为什么会出现从您的 View Controller 到信息 View Controller 的转接。

我会简单地对 View Controller 进行单独的转场(无论如何,一个将在不同的 Storyboard文件中),命名转场并使用您的逻辑来确定正确的转场。然后使用 performSegueWithIdentifier: 而不是 instantiateViewControllerWithIdentifier

(我猜 nib 名称实际上指的是 nib 的文件名。不确定,但是 segue 方法无论如何都是正确的方法。)

关于ios - 应用程序试图呈现一个 nil Model View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15591540/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com