加载不同的故事板导致错误

时间:2015-05-19 17:17:34

标签: ios objective-c uistoryboard appdelegate

我正在尝试加载不同的故事板但是我收到此错误应用程序窗口应该在应用程序启动结束时有一个根视图控制器。任何人都可以帮助我

- (UIStoryboard *)grabStoryboard {

    UIStoryboard *storyboard;

    // detect the height of our screen
    int height = [UIScreen mainScreen].bounds.size.height;

    if (height == 480) {
        storyboard = [UIStoryboard storyboardWithName:@"iPhone_4" bundle:nil];
        // NSLog(@"Device has a 3.5inch Display.");
    }
    if(height == 568)
    {
        storyboard = [UIStoryboard storyboardWithName:@"iPhone_5" bundle:nil];
        // NSLog(@"Device has a 4inch Display.");
    }
    if(height == 667)
    {
        storyboard = [UIStoryboard storyboardWithName:@"iPhone_6" bundle:nil];
        // NSLog(@"Device has a 4inch Display.");
    }

    if(height == 736)
    {
        storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
        // NSLog(@"Device has a 4inch Display.");
    }

    return storyboard;
}

2 个答案:

答案 0 :(得分:0)

您收到此错误是因为编译器会在您的函数返回未初始化的storyboard变量时看到这种情况。如果if语句的非为真,则可能发生这种情况。因此,最好重写此函数,以便始终返回初始化的故事板变量。我的建议是改变如何确定设备模型的方式。请查看此post以获取提示。

答案 1 :(得分:0)

我认为您的一个或多个故事板没有入口点,请确保全部验证。你可以在这里查看官方文件entry point for storyboard