How to know the current storyboard name?

对着背影说爱祢 提交于 2019-11-27 23:39:23

问题


I want to know what is the current loaded storyboard,I used the below code but it is still get me the Main storyboard not the current.

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

回答1:


If you are working in a UIViewController class that is instantied or segues through the storyboard the most simple way is :

UIStoryboard *storyBoard = self.storyboard;

If you are in a UIView class that is in a UIViewController

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



回答2:


Building on Durican's answer above:

Within a view controller:

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

(The name will not include the ".storyboard" filename extension.)




回答3:


Just do this, this may solve your query

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


来源:https://stackoverflow.com/questions/17723732/how-to-know-the-current-storyboard-name

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!