我想知道当前加载的故事板是什么,我使用了下面的代码,但它仍然让我得到主故事板而不是当前的。
//This get me the Main storyboard
[[NSBundle mainBundle].infoDictionary objectForKey:@"UIMainStoryboardFile"];
我想知道当前加载的故事板是什么,我使用了下面的代码,但它仍然让我得到主故事板而不是当前的。
//This get me the Main storyboard
[[NSBundle mainBundle].infoDictionary objectForKey:@"UIMainStoryboardFile"];
基于上面Durican的回答:
在视图控制器中:
UIStoryboard * storyboard = self.storyboard;
NSString * storyboardName = [storyboard valueForKey:@"name"];
(该名称将不包括“.storyboard”文件扩展名。)
如果您正在使用实例化的 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;
只需这样做,这可能会解决您的问题
NSString *storyboardName;
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
storyboardName = @"iPad";
} else {
storyboardName = @"iPhone";
}
UIStoryboard *storyBoard = [UIStoryboard storyboardWithName:storyboardName bundle:nil];