0

MainWindow.xibとImageManipViewController.xibの両方を含むこのデモを基に構築しようとしています。しかし、私のアプリにはAppDelegate.mに次のコードが含まれており、私のアプリには(まだ?)MainWindow.xibが含まれていません。2つのMainWindow.xibファイル(1つはiPhone用、もう1つはiPad用)も追加する方が良い/最善ですか(私のメソッドで呼び出され、それぞれが独自のxibファイルを呼び出します)またはMainWindow.xibsは単なる余分なものですか?

(ところで、MainWindow.xibsが冗長であることが判明した場合、元のデモで使用された理由を説明できますか?作成者がデモの作成手順を簡略化した結果である可能性があります。 、たとえば?)著者に直接連絡する方法が見つかりませんでした。

「ユニバーサル」アプリを開発するためのより良いアプローチがある場合は、私にアドバイスしてください。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    // Override point for customization after application launch.
    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
        self.viewController = [[BSViewController alloc] initWithNibName:@"BSViewController_iPhone" bundle:nil];
    } else {
        self.viewController = [[BSViewController alloc] initWithNibName:@"BSViewController_iPad" bundle:nil];
    }
    self.window.rootViewController = self.viewController;
4

1 に答える 1

2

プログラムまたは Xib ファイルを使用して、メイン ウィンドウとそれに付随するサブビュー (さらにはビュー コントローラー) を作成できます。結果は同じですが、小さなデモ プロジェクトでは、コードを簡素化し、表示したい部分に焦点を当てるために、Xib ファイルを使用することがよくあります。

iPad アプリは iPad の大画面を最大限に活用するビューを使用することが推奨されているため、iPad 用と iPhone 用の 2 つの Xibs はまったく問題ありません。このため、それらを別々のファイルとして保持することをお勧めします。ただし、モデルとコントローラーは iPad と iPhone で共通である必要があります。

また、Xib の読み込みについては、プロジェクトが iOS 4.0 以降をターゲットにしている場合、xib ファイルに「BSViewController~iphone.xib」および「BSViewController~ipad.xib」という名前を付けて、コード内のいくつかの条件を避けることができます。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    // Override point for customization after application launch.
    self.viewController = [[BSViewController alloc] initWithNibName:@"BSViewController" bundle:nil];
    self.window.rootViewController = self.viewController;
}
于 2013-01-15T16:39:14.043 に答える