0

是否可以使用<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];它是否有效?

先感谢您

4

1 回答 1

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];
于 2013-10-14T14:30:56.560 回答