現在ロードされているストーリーボードが何であるか知りたいのですが、私は以下のコードを使用しましたが、現在のストーリーボードではありません。現在のストーリーボード名を知るには?
//This get me the Main storyboard
[[NSBundle mainBundle].infoDictionary objectForKey:@"UIMainStoryboardFile"];
現在ロードされているストーリーボードが何であるか知りたいのですが、私は以下のコードを使用しましたが、現在のストーリーボードではありません。現在のストーリーボード名を知るには?
//This get me the Main storyboard
[[NSBundle mainBundle].infoDictionary objectForKey:@"UIMainStoryboardFile"];
あなたが最も簡単な方法があるinstantiedやストーリーボードを通じてseguesされるの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];
私の質問を理解できないかもしれない、私はストーリーボードの名前を設定していない名前を知りたい – wod
あなたはこのリンクを通過しましたか:http://stackoverflow.com/questions/14928817/identify-which-storyboard-is - アクティブ –
上記Duricanの答えのビル:ビューコントローラ内
:
UIStoryboard * storyboard = self.storyboard;
NSString * storyboardName = [storyboard valueForKey:@"name"];
(名前は ".storyboard" ファイル名の拡張子は含まれません。)
完璧なソリューション。ありがとう。 – VaporwareWolf
質問。どのようにこれを考え出したのですか?ドキュメンテーションは、名前のプロパティについて何も言わない。私はすべてのキーのどちらかを照会する方法を見ません。あなたはIBラベルからそれを刺しましたか? – VaporwareWolf
ちょうど完全な推測、私はそれをテストし、私は正しいことが判明。 :) – Xiphias
私は名前を取得できますか? ? – wod