是否可以使用<name_of_storyboard>~iphone.storyboard
和<name_of_storyboard>~ipad.storyboard
,就像我们可以使用.xib名称一样?或者我是否必须始终使用类似if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
的内容来区分我想要运行的故事板?
示例:
想象一下,我的项目是Cell~iphone.xib和Cell~ipad.xib
我调用objCell = [[[NSBundle mainBundle] loadNibNamed:@"Cell" owner:self options:nil] objectAtIndex:0];
并根据设备,xcode将选择运行哪个.xib。 (没问题)
现在,如果我的项目中有MainStoryboard~iphone.storyboard和MainStoryboard~ipad.storyboard,我想调用UIStoryboard *storyBoard =[UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
它是否有效?
提前谢谢
答案 0 :(得分:0)
是的,它有效。
您可以在AppDelegate中执行类似的操作:
UIStoryboard *mainStoryboard = nil;
if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone){
mainStoryboard = [UIStoryboard storyboardWithName:@"StoryIPHONE" bundle:nil];
}
else if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad){
mainStoryboard = [UIStoryboard storyboardWithName:@"StoryIPAD" bundle:nil];
}
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.window.rootViewController = [mainStoryboard instantiateInitialViewController];
[self.window makeKeyAndVisible];