我可以像.xib一样调用.storyboard吗?

时间:2013-10-14 14:04:05

标签: iphone ios objective-c ipad

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

提前谢谢

1 个答案:

答案 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];
相关问题