かなり前にiPhoneアプリを作ってユニバーサルアプリにしようと思っているのですが、ストーリーボードを使ってiPad版を作れないかと思っていたので、iPhoneならMainWindow.xibを読み込み、iPadならMainStoryboard ファイルをロードします。これは可能ですか?
3 に答える
はい。ただし、実際には 2 つの別々のストーリーボード (iPhone 用と iPad 用に 1 つ) を作成する必要があります。
iPhone ストーリーボードで、mainwindow.xib を rootViewController の中央にドラッグし、全画面表示にするだけです。
その後、iPad の絵コンテで好きなことを行うことができます。
ただし、プロジェクトの概要で 2 つのストーリーボード ファイルが正しくリンクされていることを確認してください。
ガッツィーニは正しく、自分の答えを入力する前に、これが真実であり、比較的簡単であることを確認するために調査を行っているときに、最初に彼の答えを得ました. だから彼に+1。
ただし、2 つの個別のストーリーボードは必要ありません。1 つのアーキテクチャに対して 1 つのストーリーボードが必要であり、既にサポートされているアーキテクチャに対して XIB ファイルが必要です。
これは、私が自分のテスト プロジェクトで行ったことを示すのに役立つスクリーンショットです。
アプリケーションの plist を編集して、既に XIB ファイルがある特定のアーキテクチャの「nib」ファイルを使用し、新しいアーキテクチャのストーリーボードを指定するだけです。
メイン インターフェイス ( Info.plist 内) またはメイン ストーリーボード (Info.plist内) を設定しない場合、iPad ではストーリーボードを使用し、iPhone ではペン先を使用する方が簡単です。NSMainNibFile
NSMainStoryboardFile
代わりに、アプリのデリゲートを から移動し、クラス名をinの 4 番目の引数として渡してインスタンス化MainWindow.xib
させます。のファイルの所有者をアプリに委任させます。UIApplicationMain
UIApplicationMain
main
MainWindow.xib
アプリ デリゲートのapplication:didFinishLaunchingWithOptions:
で、インターフェイス イディオムを調べることができます。
インターフェイスのイディオムが iPhone の場合は、MainWindow
を使用してロードし-[NSBundle loadNibNamed:owner:options:]
ます。
インターフェイス イディオムが iPad の場合、ウィンドウを作成し、MainStoryboard
を使用してロードし+[UIStoryboard storyboardWithName:bundle:]
、最初のビュー コントローラーを でインスタンス化し、その-[UIStoryboard instantiateInitialViewController]
ビュー コントローラーをウィンドウのルート ビュー コントローラーとして設定します。