我目前正在尝试在我的应用程序中实现一个介绍性(教程)部分,并且我想为用户提供随时查看它的选项。我的应用程序的主要部分由 UIViewController XIB 文件 ( ViewController_iPhone.xib
, ViewController_iPad.xib
) 组成,为了我的介绍性视图的目的,我发现使用 Storyboard 更容易。所以简单总结一下:我正在尝试从主 ViewController (XIB) 切换到 Storyboard 中的起始 ViewController,具体取决于设备类型 -> 这一切都从 UIButton 点击开始。
在我的 Storyboard 中,我分配了单独的 Storyboard ID,因此无论是 iPad、iPhone 还是 iPhone-4inch,它都会加载正确的视图:
故事板 ID:3-Slide1
(iPad)、4-Slide1
(iPhone)、5-Slide1
(iPhone-4inch)。
这是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 错误,但似乎都有不同的问题。