web-dev-qa-db-ja.com

現在のストーリーボード名を知る方法は?

現在ロードされているストーリーボードを知りたいのですが、以下のコードを使用しましたが、それでもメインストーリーボードは現在のものではありません。

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

ストーリーボードを介してインスタンス化またはセグエされる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;
10
Durican Radu

上記のDuricanの答えに基づいて:

ビューコントローラ内:

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

(名前には「.storyboard」ファイル名拡張子は含まれません。)

33
Xiphias