我想知道當前加載的故事板是什麼,我使用了下面的代碼,但它仍然讓我的主要故事板不是當前。如何知道當前的故事板名稱?
//This get me the Main storyboard
[[NSBundle mainBundle].infoDictionary objectForKey:@"UIMainStoryboardFile"];
我想知道當前加載的故事板是什麼,我使用了下面的代碼,但它仍然讓我的主要故事板不是當前。如何知道當前的故事板名稱?
//This get me the Main storyboard
[[NSBundle mainBundle].infoDictionary objectForKey:@"UIMainStoryboardFile"];
如果你是在一個UIViewController類是instantied或塞格斯通過故事板最簡單的方式工作是:
UIStoryboard *storyBoard = self.storyboard;
如果你是在一個UIView類,它是在一個UIViewController
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];
可能是你不明白我的問題,我想知道這個名字沒有設置故事板的名字 – wod
你有沒有通過這個鏈接:http://stackoverflow.com/questions/14928817/identify-which-storyboard-is -active –
大廈Durican的回答以上:
在一個視圖控制器:
UIStoryboard * storyboard = self.storyboard;
NSString * storyboardName = [storyboard valueForKey:@"name"];
(該名稱將不包括 「.storyboard」 文件擴展名。)
完美的解決方案。謝謝。 – VaporwareWolf
問題。你是怎麼想出來的?文檔沒有提及任何有關名稱屬性的內容。我沒有看到查詢所有密鑰的方法。您是否從IB標籤刺戳過它? – VaporwareWolf
只是一個完整的猜測,我測試了它,結果證明我是對的。 :) – Xiphias
我怎麼能得到什麼名字? ? – wod