2013-04-17 7 views
6

UIStoryboardはどのように識別していますか?UIStoryboardの特定

クラスには、作成してインスタンス化するメソッドがありますが、nameのような@propertyは表示されません。例えば。

ストーリーボードオブジェクトに

+ storyboardWithName:bundle: 

インスタンス化ストーリーボードビューコントローラ

– instantiateInitialViewController 
– instantiateViewControllerWithIdentifier: 

任意の提案を取得しますか?

====私はself.storyboard.nameまたは[self.storyboard description]ような何かを期待していた

UPDATE、例えば:

NSLog(@"This Storyboard is: %@", self.storyboard.name); 

は、おそらくあることを意味していません。

あなたは、プロジェクトナビゲータで、その名前によってストーリーボードを識別することができます
+0

それは、それを特定しようとしている場所によって異なります。あなたがストーリーボードで作成されたコントローラの場合は、self.storyboardを使用します。あなたがアプリケーションデリゲートからそれをやっているのであれば、コントローラにあるストーリーボードではなく、別のストーリーボードへの参照を取得する必要がある場合は、Brian Lubyの答えを返す必要があります。 – rdelmar

答えて

3

enter image description here

あなたはインターフェイスビルダーでアイデンティティインスペクタでそのストーリーボードIDを設定することで、ストーリーボードからのビューコントローラを識別することができます

enter image description here

あなたはこれらを持っていたら、あなたはあなたのコードを介してそれらにアクセスすることができます。

UIStoryboard *iPhoneStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:nil]; 
ViewController *firstViewController = [iPhoneStoryboard instantiateViewControllerWithIdentifier:@"FirstViewController"];