私は、メインのストーリーボードを手作業でapplication:didFinishLaunchingWithOptions
にロードするユニバーサルアプリを持っています。デバイスタイプに基づいて異なるストーリーボードを選択する
iPhoneとiPadの2つのストーリーボードには、~iPhone
と~iPad
の接尾辞があります。私が使って自分のストーリーボードを搭載しています:
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
self.initialViewController = [storyboard instantiateInitialViewController];
これは、コンソールにUnknown class ViewController in Interface Builder file.
を出力しますので、どうやらそれは正しいストーリーボードをロードしていません。しかし、[UIStoryboard storyboardWithName:@"MainStoryboard~iPhone" bundle:nil];
を使用するとうまく動作しますが、もちろんiPhone用にしか動作しません。
私には何が欠けていますか?名前の接尾辞を使用して正しいストーリーボードを自動的に選択するにはどうすればよいですか?
なぜあなたはプロジェクトの設定に行き、iphoneの配備情報とipadのストーリーボードをipad配備情報にセットするのはなぜですか?あなたはデバイスごとに複数のストーリーボードを使用しますか?ストーリーボードを手動でロードする目的は何ですか? – guenis
私がやろうとしているのは、IIViewDeckControllerをルートビューコントローラとして設定することです。そのため、ストーリーボードを自動的にロードすることは役に立ちません。 –
これは一部のバージョンのバグです(iOS 6.1.2では壊れていましたが、以前は同じプロジェクトで動作していました)。アップル社のドキュメントによると、〜iphoneの接尾辞は普遍的で、すべてのリソースの読み込み(イメージ、NIBファイル - 以前の経験では、すべて)に影響するはずです。ストーリーボードが壊れていて、セレクターを何とかスキップしているようです。 – Adam