1

私が作成したアプリケーションは、iPhone 専用のアプリケーションとして作成する予定でした。

今、アプリケーションをユニバーサルにする必要があると言われました。iPadにも対応する必要があります(縦向きのみのモード)。このプロジェクトのXIBにはオブジェクトが大量にロードされているため、プログラムで座標を割り当てるのは面倒になるため、現在オプションを探しています。

私は、この iPhone アプリを iPad 互換アプリにするために取るべき最善かつ最速のアプローチを探しています。

PS: アプリケーションは MainWindow.xib ファイルを作成しない XCode 4.3 でビルドされているため、mainwindow.xib ファイルはありません。

前もって感謝します。

編集: すべての XIB について、iPad 用に重複した XIB を作成しました。ここで、ファイル名のサフィックスを MyiPadXIB~ipad.xib に変更するように指示する命名規則を使用しようとしています。アプリを iPad で実行すると、自動的にその XIB が使用されます。これは起こっていないようです。

iPad でアプリケーションを開くと、小さなウィンドウ (iPad で iPhone 専用アプリを実行したときに表示されるウィンドウ) しか表示されません。

これに対する解決策はありますか?

4

2 に答える 2

1

ビルド設定>ターゲット(iPhone)>右クリックして複製を選択することにより、すべてのXIBの複製XIBを作成するという非常に簡単なアプローチに従いました。

次に、重複した xib の名前を「iPhone XIB 名」~ipad.xib の形式で変更します。

システムは、使用されているデバイスに応じて XIB を自動的に取得します。

于 2012-10-26T06:04:17.397 に答える
0

私が知っていることから(私が知らないより速い/より良いアプローチがあるかもしれません)

iPad用に個別のxibファイルを作成します

ビューコントローラーを初期化するときに、どのデバイスを使用しているかを確認します

if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
        self.serverSettingsViewController = [[ServerSettingsViewController alloc] initWithNibName:@"ServerSettingsViewController_iPhone" bundle:nil];
        self.motionJpegViewController = [[MotionJpegViewController alloc] initWithNibName:@"MotionJpegViewController_iPhone" bundle:nil];
    } else {
        self.serverSettingsViewController = [[ServerSettingsViewController alloc] initWithNibName:@"ServerSettingsViewController_iPad" bundle:nil];
        self.motionJpegViewController = [[MotionJpegViewController alloc] initWithNibName:@"MotionJpegViewController_iPad" bundle:nil];
    }

iPhoneまたはiPadのxibファイルをロードします(参考までに、xibビューがiPadに十分な大きさであることを確認してください)

于 2012-08-07T18:08:10.300 に答える