1

私は、iPhone アプリを iPad で動作するようにユニバーサルにする方法についてのチュートリアルを見てきました。ただし、これを実装しようとすると、Xcode がかなり変更され、チュートリアルが古くなっているように見えるため、少し行き詰まりました。これまでのところ、次のことを行っています。

ユニバーサルに設定するようにデバイスを更新しました。

ここに画像の説明を入力

アプリのデリゲート クラスも次のように更新しました。

// Set up tab 1
TabOne_ViewController *tabOne = [TabOne_ViewController alloc];
UIViewController *tabOneViewController;

// Set up tab 2
TabTwo_ViewController *tabTwo = [TabTwo_ViewController alloc];
UIViewController *tabTwoViewController;

// Determine which UI to load for each tab
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
{
    tabOneViewController = [tabOne initWithNibName:@"TabOne_ViewController" bundle:nil];
    tabTwoViewController = [tabTwo initWithNibName:@"TabTwo_ViewController" bundle:nil];
}
else
{  
    tabOneViewController = [tabOne initWithNibName:@"TabOne_ViewController(iPad)" bundle:nil];
    tabTwoViewController = [tabTwo initWithNibName:@"TabTwo_ViewController(iPad)" bundle:nil];
}

また、追加の .xib ファイルを 2 つ作成しました。

  • TabOne_ViewController(iPad).xib
  • TabTwo_ViewController(iPad).xib

最後に、クラスを & に設定しようとしTabOne_ViewController(iPad).xibましTabOne_ViewController.hTabOne_ViewController.m。また、 &TabTwo_ViewController(iPad).xibになります。しかし、私はそうすることができませんでした。TabTwo_ViewController.hTabTwo_ViewController.m

私はどこかで間違っていますか?見逃した追加の手順はありますか?

編集:

IBで意味するクラスを選択できないことについて言及していたとき:

ここに画像の説明を入力

クラスを .xib ファイルにリンクできなければ、すべての IBOutlets と IBActions をリンクできません。

4

2 に答える 2

1

xibで、ビューのクラスを変更しようとしました。しかし、あなたはのクラスを変更する必要がありますFile's Owner

于 2011-12-23T11:31:56.043 に答える
1

プロジェクトのターゲット クリックに移動し、まとめて入力します: デバイス: "ユニバーサル"

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
{
tabOneViewController = [tabOne initWithNibName:@"TabOne_ViewController" bundle:nil];
tabTwoViewController = [tabTwo initWithNibName:@"TabTwo_ViewController" bundle:nil];
}
else
{  
tabOneViewController = [tabOne initWithNibName:@"TabOne_ViewController(iPad)" bundle:nil];
tabTwoViewController = [tabTwo initWithNibName:@"TabTwo_ViewController(iPad)" bundle:nil];
}

このコードの代わりに、次のようにこのコードを試してください。

 UIDevice* thisDevice = [UIDevice currentDevice];
if(thisDevice.userInterfaceIdiom == UIUserInterfaceIdiomPad)
{
    // iPad
    tabOneViewController = [tabOne initWithNibName:@"TabOne_ViewController(iPad)" bundle:nil];
tabTwoViewController = [tabTwo initWithNibName:@"TabTwo_ViewController(iPad)" bundle:nil];

}
else
{
    // iPhone
    tabOneViewController = [tabOne initWithNibName:@"TabOne_ViewController" bundle:nil];
tabTwoViewController = [tabTwo initWithNibName:@"TabTwo_ViewController" bundle:nil];
}
于 2011-12-23T09:09:28.803 に答える