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

wod*_*wod 15 iphone storyboard ios uistoryboard uistoryboardsegue

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

//This get me the Main storyboard 
[[NSBundle mainBundle].infoDictionary objectForKey:@"UIMainStoryboardFile"];
Run Code Online (Sandbox Code Playgroud)

Xip*_*ias 33

以Durican的答案为基础:

在视图控制器中:

UIStoryboard * storyboard = self.storyboard;
NSString * storyboardName = [storyboard valueForKey:@"name"];
Run Code Online (Sandbox Code Playgroud)

(该名称不包含".storyboard"文件扩展名.)

  • 这是私有API所以要小心. (4认同)

Dur*_*adu 10

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

UIStoryboard *storyBoard = self.storyboard;
Run Code Online (Sandbox Code Playgroud)

如果你在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;
Run Code Online (Sandbox Code Playgroud)

  • 我怎么能得到这个名字? (9认同)