-1

ユーザーが使用しているデバイスを検出し、その情報を使用してアプリケーションに特定のnibファイルを使用させる方法はありますか?

今、私が持っているコードは

- (BOOL)application: (UIApplication *)application didFinishLaunchingWithOptions: (NSDictionary *)launchOptions{
  if(isiPhone5){
    self.RootViewController = @"RootViewController_iPhone5";
  }
  else{
    self.RootViewController = @"RootViewController_iPhone4";
  }
}

RootViewController_iPhone4.xibデバイスを見つけるための私の他のコードは機能し、ユーザーが使用しているデバイスを教えてくれますが、実際には .xib ファイルを からに変更しませんRootViewController_iPhone5.xib。これを行う方法はありますか?

使用されているデバイスが iPhone 4 と iPhone 5 の場合、View Controller のボタン名が異なるなど、デバイスに応じて他のカスタムが発生するようにしたいので、自動レイアウトを使用したくありません。

4

4 に答える 4

1

次の方法でこれを達成できます

プロジェクト全体で使用されるように、App デリゲートでマクロを作成します。デバイスの画面の高さに基づきます。

#define IS_IPHONE_5 ( fabs( ( double )[ [ UIScreen mainScreen ] bounds ].size.height - ( double )568 ) < DBL_EPSILON )

これで、iPhone 4 および iPhone 5 の状態をテストできます。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone){


    if(IS_IPHONE_5){


        self.window.RootViewController = [[RootViewController alloc] initWithNibName:@"RootViewController_iPhone5" bundle:nil];

    }
    else
    {
        self.window.RootViewController = [[RootViewController alloc] initWithNibName:@"RootViewController" bundle:nil];
    }
    }
  }
于 2013-10-04T04:53:13.193 に答える