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 文件:

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

最后,我尝试将课程设置TabOne_ViewController(iPad).xibTabOne_ViewController.h& TabOne_ViewController.m。也是& 。TabTwo_ViewController(iPad).xib_ 但是我无法这样做。TabTwo_ViewController.hTabTwo_ViewController.m

我是不是哪里出错了?我错过了额外的步骤吗?

编辑:

当我指的是无法在 IB 中选择课程时:

在此处输入图像描述

如果无法将类链接到 .xib 文件,我就无法链接所有的 IBOutlets 和 IBActions。

4

2 回答 2

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 回答
1

在 xib 中,您尝试更改视图的类。但是你必须改变类File's Owner

于 2011-12-23T11:31:56.043 回答