4

我写了一个 iPhone 应用程序。然后,我稍微改变了界面,添加了更高分辨率的图像,并制作了 iPad 版本。在一个完美的世界里,我希望任何购买 iPad 版本的人都可以免费获得 iPhone 版本(但不是相反)。由于 Apple 似乎没有办法做到这一点(对吗??),我下一个最喜欢的解决方案是让 iPad 版本以某种方式包含 iPhone 版本。

我知道我可以将 iPad 版本转换为“通用”版本,但由于应用程序的外观如此不同,这似乎是一种真正的痛苦。我有很多视图控制器,它们在两个版本之间几乎完全不同。有些方法是一样的,但只有30%左右。是否有一个简单的解决方案:

  • 检查设备是 iPhone 还是 iPad

    • 如果是 iPhone,则使用一组文件

    • 如果是 iPad,则使用不同的文件组

提前致谢!

4

2 回答 2

2

尝试在 Xcode 中创建一个新项目并选择使其成为通用应用程序。在 Xcode 的默认布局中,iPad 和 iPhone 版本之间存在明显的区别。您可以根据需要使应用程序的两个版本相似或不同。

此外,您可以使用UI_USER_INTERFACE_IDIOM(). 目前这两个值是UIUserInterfaceIdiomPadUIUserInterfaceIdiomPhone

于 2011-03-12T04:05:19.220 回答
0

您描述的“简单解决方案”基本上是 iOS 加载通用应用程序的方式。

没有其他真正的方法可以解决它。您必须再次将两个项目合并为一个才能完成您想做的事情。

第一个问题是一些(很多?)类的名称在两个项目之间是通用的。您可以通过使用 Xcode 中的“重构...”功能在将它们合并在一起之前更改一个项目(例如,您的 iPhone 应用程序,因为它较旧)中的类的名称来为自己节省一些痛苦。第二个问题将是您的 Info.plist;您需要确保为 iPad 和 iPhone 分别设置正确的“主 nib 文件基本名称”、正确支持的界面方向、图标文件等设置为正确的值。

于 2011-03-12T04:12:22.017 回答