2011-03-12 67 views
4

我写了一个iPhone应用程序。然后,我改变了一下接口,添加了更高分辨率的图像,并制作了它的iPad版本。在一个完美的世界中,我希望任何购买iPad版本的人免费获得iPhone版本(尽管不是相反)。由于苹果似乎没有办法做到这一点(对吗?),我下一个最喜欢的解决方案是让iPad版本以某种方式包含iPhone版本。是否有一种将iPhone和iPad应用程序合并到通用应用程序的全局方式?

我知道我可以将iPad版本转换为“普遍”,但由于应用程序的面貌如此不同,这似乎是一个真正的痛苦。我有很多视图控制器,它们在两个版本之间几乎完全不同。有些方法是相同的,但只有大约30%。有没有沿着这一行简单的解决办法:

  • 检查设备是iPhone或iPad

    • 如果iPhone,然后用一组文件的

    • 如果iPad上,然后使用不同的文件组

提前致谢!

回答

2

尝试在Xcode中创建一个新项目,并选择使其成为通用应用程序。按照Xcode的默认方式,iPad和iPhone版本之间有明显的分歧。您可以根据需要将应用的两个版本设置为相似或不同。

此外,您可以使用UI_USER_INTERFACE_IDIOM()在运行时检查运行的设备。目前这两个值是UIUserInterfaceIdiomPadUIUserInterfaceIdiomPhone

+0

我想这样我只需要复制所有我的文件与正确的追加标记。这个障碍是我必须重做IB中所有该死的连接。我想这是以编程方式做所有事情的一个论据。谢谢! – PengOne 2011-03-12 13:53:46

0

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

没有其他真正的解决方法。你必须再次将你的两个项目合并为一个,才能做到你想要的。

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

相关问题