如何知道当前的故事板名称?

时间:2013-07-18 12:41:01

标签: iphone ios storyboard uistoryboard uistoryboardsegue

我想知道当前加载的故事板是什么,我使用下面的代码,但它仍然是我的主故事板而不是当前。

//This get me the Main storyboard 
[[NSBundle mainBundle].infoDictionary objectForKey:@"UIMainStoryboardFile"];

3 个答案:

答案 0 :(得分:32)

基于Durican上面的回答:

在视图控制器中:

UIStoryboard * storyboard = self.storyboard;
NSString * storyboardName = [storyboard valueForKey:@"name"];

(该名称不包含“.storyboard”文件扩展名。)

答案 1 :(得分:10)

如果您正在使用UIViewController类进行即时或通过故事板进行分段,最简单的方法是:

UIStoryboard *storyBoard = self.storyboard;

如果你在UIViewController中的UIView类

UIResponder *responder = self;
while (![responder isKindOfClass:[UIViewController class]]) {
    responder = [responder nextResponder];
    if (nil == responder) {
        break;
    }
}
UIViewController *viewController = (UIViewController *) responder;
UIStoryboard *storyBoard = viewController.storyboard;

答案 2 :(得分:-2)

这样做,这可能会解决您的问题

NSString *storyboardName;
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
    storyboardName = @"iPad";
} else {
    storyboardName = @"iPhone";
}
UIStoryboard *storyBoard = [UIStoryboard storyboardWithName:storyboardName bundle:nil];
相关问题