从iPhone到Universal-App更新目标

时间:2011-06-13 12:36:36

标签: iphone objective-c ipad xcode4

我今天开始将我的iPhone-App升级为Universal-App。所以我正在使用Xcode 4,我将目标设置更改为Universal。 Xcode问我是否要将MainWindow转换为iPad版本,我回答是,问题就开始了。


发生了什么事?

如果我构建了我的应用程序,那么模拟器会将我的 iPhone-Nib 重新设置为一个糟糕的 iPad版本。 我不想要这个,并搜索了一个将 iPhone-Nib 转换为 iPad-Nib 的功能。但是我没有找到这样的功能并在网上搜索它。 有人写道,在Xcode 4中删除了这个功能,最好的解决方案是将Finder中的 iPhone-Nib 复制到我项目的 iPad-Folder 中。 我这样做了,并将新的 “iPad-Nib” 添加到Xcode中以稍微调整一下。 然后我又重新构建了我的项目,并且像以前一样看到了同样的rezised,可怕的 iPhone-Nib ,所以我清理了我的Target并再次构建它。现在,模拟器向我显示了正确的 “iPad-Nib” ,但是有些对象仍然没有在正确的位置,但有些是......

我开始为模拟器调整我的笔尖,现在我的应用程序在模拟器中看起来很好,就像Xcode中的废话一样。此外,我的应用程序有时会加载可怕的,重新调整大小的 iPhone-Nib

我错了什么?还有另一种可能性来创建 “iPad-Nib”

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

当您回答“是”将MainWindow转换为iPad版本时,Xcode会抓取您的iPhone笔尖,复制它,并调整窗口和视图以获得正确的iPad大小。而已。现在由您开始调整您的观点。

ferbass发布的链接是一个很好的起点,可以开始学习如何将应用程序更改为通用。发布了一个完整的xcode项目,您可以下载并查看。

我从中获取的关键点是使用UI_USER_INTERFACE_IDIOM()来确定应用当前正在运行的平台。在视图控制器中使用它可以相应地调整视图。

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
    // Do iPad related stuff
}
else {
    // Do iPhone related stuff
}