Ios 在Xcode中使用多个故事板

Ios 在Xcode中使用多个故事板,ios,objective-c,xcode,Ios,Objective C,Xcode,我已经创建了5个额外的故事板,并删除了主故事板。这是因为我希望iPhone和iPad有5个独立的故事板来匹配5种不同的屏幕尺寸。到目前为止,我有一个用于iPhone 3.5英寸,一个用于iPhone 4英寸,一个用于iPhone 4.7英寸,一个用于iPhone 5.5英寸,还有一个用于iPad。我已经把下面的代码连接起来,使它工作。但是,当您尝试构建项目时,它不起作用。没有错误,但假设我进入iPhone 3.5英寸情节提要,添加一个UIViewController和一个按钮或标签,然后当你构建

我已经创建了5个额外的故事板,并删除了主故事板。这是因为我希望iPhone和iPad有5个独立的故事板来匹配5种不同的屏幕尺寸。到目前为止,我有一个用于iPhone 3.5英寸,一个用于iPhone 4英寸,一个用于iPhone 4.7英寸,一个用于iPhone 5.5英寸,还有一个用于iPad。我已经把下面的代码连接起来,使它工作。但是,当您尝试构建项目时,它不起作用。没有错误,但假设我进入iPhone 3.5英寸情节提要,添加一个UIViewController和一个按钮或标签,然后当你构建项目时,它进入你的启动屏幕,然后它就什么都不做了。我已经在UIViewController中插入了开始箭头,但是除了启动屏幕之外,我无法得到任何东西。我已经在所有的故事板和它们的模拟器上试过了。我想知道我是否在代码中遗漏了什么,但我不确定

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
UIStoryboard *storyboard = nil;
if ([[UIDevice currentDevice] userInterfaceIdiom] ==UIUserInterfaceIdiomPad) {
    storyboard = [UIStoryboard storyboardWithName:@"Storyboard_iPad" bundle:nil];//iPad
} else {
    CGSize screenSize = [[UIScreen mainScreen] bounds].size;
    if (screenSize.height == 480){
        storyboard = [UIStoryboard storyboardWithName:@"Storyboard_iPhone4S" bundle:nil];//iPhone 3.5inch
    } else
        if (screenSize.height == 568){
            storyboard = [UIStoryboard storyboardWithName:@"Storyboard_iPhone5/5C/5S" bundle:nil];//iPhone 4inch
        }
        else
        { if (screenSize.height == 667){
            storyboard = [UIStoryboard storyboardWithName:@"Storyboard_iPhone6" bundle:nil];//iPhone 4.7inch
            } else
                if (screenSize.height == 736){
                    storyboard = [UIStoryboard storyboardWithName:@"Storyboard_iPhone6Plus" bundle:nil];//iPhone 5.5inch
                } else
                    //default storyboard
                storyboard = [UIStoryboard storyboardWithName:@"Main.Storyboard" bundle:nil];
            }
}
    self.window.rootViewController = [storyboard instantiateInitialViewController];
    [self.window makeKeyAndVisible];

return YES;
}

在项目中找到info.plist文件并删除名为“主情节提要文件基本名称”的行

此外,您忘了创建窗口(归功于)

我强烈建议你调查和调查。使用这两个选项,您可以在一个情节提要中支持所有屏幕大小。刚开始的时候有点难,但从长远来看肯定是值得的


最近的WWDC有一个关于这个的视频,叫做。

谢谢。但现在它只是进入了一个黑屏,而不是我的UIViewController,它有一个标签说Hello。其他尺寸也会发生同样的情况。您也可以通过单击项目并转到“常规”窗格来完成此操作。在这里,只需删除主界面字段中显示“Main”的地方。@BenjaminMcIntyre,您还需要创建窗口。self.window在代码中将为零。@rdelmar,如何创建窗口?很抱歉,我对这一点相当陌生。@BenjaminMcIntyre,self.window=[[UIWindow alloc]initWithFrame:[UIScreen mainScreen]bounds];您还需要在最后返回YES之前使其可见,[self.window makeKeyAndVisible];
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];