3

それぞれのビューとを備えたiPhoneアプリが FirstViewControllerあります。SecondViewControllerFirstView.xibSecondView.xib

今、私はこのアプリをiPhoneとiPadの両方で動作させたいと思っています。iPadの場合、1つにマージする必要がFirstview.xibあります。SecondView.xibThirdView-iPad.xib

最善のアプローチは何でしょうか?iPad用に別のViewControllerクラスを作成する必要がありますか、それとも既存の単一のxibで使用できFirstViewControllerますSecondViewControllerか?

これまでの私の調査によると、単一のxibで複数のViewControllerを使用する方法はありません。これを行うための最良の方法を教えてください。

ありがとう

4

3 に答える 3

5

Xcode4を使用している場合は、「ユニバーサルターゲットへの移行」を使用でき、必要なすべてを実行します

http://xcodebook.com/2011/05/making-an-ios-target-universal/

あなたがそれを持っていないなら、私はあなたのxibからコントローラーを遠ざけることをお勧めします。xibファイルにはiphoneとipadのビューのみが含まれますが、コントローラーは同じにすることができます。そして、あなたはrootviewcontrollerからあなたのロジックを制御することができます、ただのアイデア..それはすべてあなたのプロジェクトに依存します。

于 2011-08-10T13:16:49.087 に答える
3

マゾヒズムに興味がない限り、新しいViewControllerを作成するのが最善です。この方法で再利用すると、多くの問題が発生する可能性があります。ViewControllerでロジックを再利用する必要がある場合は、集約または継承を使用します。

私は通常、ベースのViewControllerを作成します。たとえば、すべてのiPhoneスペシャルとiPad用の個別のをXYZViewController作成します。しかし、それらが完全に異なる場合は、ViewControllerだけでなく、一意の名前と独自のNIBを付けます。XYZViewController_iPhoneXYZViewController_iPad

于 2011-08-10T13:15:36.703 に答える
1

iPhoneアプリをUnivarsalアプリに変換するには次のルールがあります

1)PlistファイルにNSMainNibFile〜ipad .... MainWindow_ipad(ipad window)を追加します。

2)別々の名前Xibs(iPhoneとiPad)を実装する

3)ターゲットターゲットデバイスファミリーで(iphone / ipad)に設定し、Ipad&iphoneに従ってフレームを設定します。

if(UI_USER_INTERFACE_IDIOM()== UIUserInterfaceIdiomPad){

btnHme.frame = CGRectMake(971,6、32、32); // ipad

} そうしないと {

btnHme.frame = CGRectMake(438,6、32、32); // iphone

}

乾杯

于 2011-08-20T06:50:06.490 に答える