2013-04-11 6 views
7

普遍的なプロジェクトで私の手を試して、私はストーリーボードから識別子でVCをロードしたいと思います。ストーリーボードにアクセスする際のイディオムの明示的なチェックを避ける方法はありますか?普遍的なアプリケーションでメインのストーリーボードを取得

この醜いコードが動作する....

UIStoryboard *storyboard; 

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { 
    storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPad" bundle:nil]; 
} 
else { 
    storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:nil]; 
} 

UIViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"MyViewController"]; 

しかし、不潔。ストリングリテラルメインストーリーボードは見た目が難しいです(なぜ、メインストーリーボードの設定を保存できないため、アプリケーションが[UIStoryboard mainStoryboard]と言うことができないのかわかりませんが)明示的イディオムチェックはあまりにも橋渡しです。

このコードを消去する可能性のある隠されたインテリジェンス(網膜ディスプレイをサポートする "@ 2x"画像サフィックスに匹敵する)がありますか?

答えて

16

他のビューコントローラの中から投稿されたコードを実行していると仮定すると、現在のストーリーボードはいつでも[self storyboard]で取得できます。selfはUIViewControllerのインスタンスです。

+1

ありがとうございました。 1つの石で2羽の鳥。私は2回upvoteすることができれば願っています。 – danh

+0

デズモンドありがとう! – Oritm

関連する問題