我创建了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;
}
答案 0 :(得分:3)
在项目中找到您的info.plist文件,并删除名为"主故事板文件基本名称"的行。
此外,您忘记创建窗口(信用到rdelmar)。
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
我强烈建议您调查Auto Layout和Size Classes。使用这两个,您可以在一个故事板中支持所有屏幕尺寸。从一开始就很难搞定,但从长远来看它绝对值得。
最近的WWDC上有一段名为Building Adaptive Apps with UIKit的视频。