【问题标题】:Is there a global way to merge an iPhone and an iPad app into a universal app?是否有一种将 iPhone 和 iPad 应用程序合并为通用应用程序的全球方法?
【发布时间】:2011-07-13 22:01:24
【问题描述】:

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

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

  • 检查设备是 iPhone 还是 iPad

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

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

提前致谢!

【问题讨论】:

    标签: iphone ipad universal


    【解决方案1】:

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

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

    【讨论】:

    • 我想这样我只需要复制所有带有正确附加标签的文件。问题是我必须重做 IB 中所有该死的连接。我想这是以编程方式做所有事情的一个论据。谢谢!
    【解决方案2】:

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

    没有其他真正的解决方法。您必须再次将两个项目合并为一个才能执行您想要的操作。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-11
      • 2011-05-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-07
      • 2011-04-10
      • 1970-01-01
      相关资源
      最近更新 更多