2012-10-31 7 views
6

私はずっと前からiPhoneアプリを作っていましたが、今は普遍的なアプリにしようと考えていますが、iPhone版ではStoryboardsを使ってMainWindow.xibを読み込み、 iPadはMainStoryboardファイルを読み込みます。これは可能ですか?iPhone用のMainWindow.xibとiPad用のストーリーボードの両方を使って普遍的なアプリを作ることはできますか?

+1

私はアプリが非常に複雑でない限り、すべてのストーリーボードを作成するほうがよいと思います。そうすれば、すべてのトランジションが同じになり、コードがきれいになります。 – nycynik

+0

ストーリーボードが利用できなかった場合、アプリはかなり複雑で、私はiPadのためにそれをやり直すとは思わないが、何かに突入する前に、私ができるかどうかを知る必要があるそれを行う。 – user1790012

答えて

3

はい、実際には2つの別々のストーリーボードを作成する必要があります(iPhoneの場合は1、iPadの場合は1)。

iPhoneのストーリーボードでは、mainwindow.xibをrootViewControllerの中央にドラッグしてフルスクリーンになるようにしてください。

その後、iPadのストーリーボードで何でもできます。

2つのストーリーボードファイルがプロジェクト概要に正しくリンクされていることを確認してください。

+0

いいね、私はそれを行って、何が起こるかを見てあげるよ、どうもありがとう。 – user1790012

0

あなたがいないセットメインインターフェイス(Info.plistの中NSMainNibFile)またはメインストーリーボード(Info.plistの中NSMainStoryboardFile)を行う場合は、iPadやiPhone上のニブにストーリーボードを使用することが簡単になります。

代わりに、MainWindow.xibのうち、アプリのデリゲートを移動し、UIApplicationMainmainUIApplicationMainの4番目の引数としてそのクラス名を渡すことで、それをインスタンス化してみましょう。アプリケーションがファイルの所有者MainWindow.xibを委任されるようにします。

アプリデリゲートのapplication:didFinishLaunchingWithOptions:では、インターフェイスのイディオムを調べることができます。

インターフェイスのイディオムがiPhoneの場合は、-[NSBundle loadNibNamed:owner:options:]を使用してMainWindowをロードします。

インターフェースイディオムがiPadのであれば、あなたのウィンドウを作成し、+[UIStoryboard storyboardWithName:bundle:]を使用してロードMainStoryboard-[UIStoryboard instantiateInitialViewController]とその初期ビューコントローラをインスタンス化し、あなたのウィンドウのルートビューコントローラとしてそのビューコントローラを設定します。

3

私が自分の答えを入力する前に、これが真実であることを確認するための調査をしていた間に、Gazziniが正しいと答えたのは、比較的簡単でした。&だから彼に+1。

ただし、2つの別々のストーリーボードは必要ありません。 1つのアーキテクチャ用に1つのストーリーボードと既にサポートしているアーキテクチャ用のXIBファイルが必要です。ここで

は、私は私自身のテストプロジェクトに何をしたかをお見せ役立つかもしれませんスクリーンショットです:

Yes It Is Possible

単に特定のアーキテクチャのためにあなたを「ペン先」ファイルを使用するようにアプリケーションのplistの編集しますXIBファイルを既に用意しておき、新しいアーキテクチャ用のストーリーボードを指定します。

+0

あまりにもあなたの答えをありがとう、私は、App Storeに私のinfo.plistで私はNSMainNIBFileまたはUIMainStoryboardFileを設定することができますアプリを提出するためには、いくつかの研究を行っていただきありがとうございます。 "NSMainNIBFile:このキーは 'UIMainStoryboardFile'(77ページ)キーと相互排他的です。 キーのいずれかをInfo.plistファイルに含める必要がありますが、両方を含めることはできません" – user1790012

関連する問題