【问题标题】:Is this a correct way of creating a universal iOS app? Xcode 4 - Seems to work?这是创建通用 iOS 应用程序的正确方法吗? Xcode 4 - 似乎工作?
【发布时间】:2011-11-11 17:37:47
【问题描述】:

以下是我如何从现有 iPhone 项目创建通用应用程序,方法是使用副本创建 ~ipad.xib(s),然后将它们添加回项目的备份,并检查通用。

我使用 xcode 4.02,基础 sdk 为 4.3.3,部署目标为 3.1.2。

  1. 在某处备份您的整个项目。
  2. 右键单击 iPhone 目标并选择复制。为 iPad 选择副本,而不仅仅是复制。这会创建一个名为 Resources-iPad 的新文件夹,其中有一个名为 classes 的子文件夹,其下是整个项目中所有 xib 文件的副本。 (有趣的是,当我在 finder 中查看这些文件时,它们没有 .xib 扩展名,尽管它们在 xcode 窗口中显示了扩展名 - 为什么?Finder 仍然说它们是 xib 文件。)
  3. 此时我有两个目标。这似乎是错误的,所以我去 finder 并制作了新 Resources-iPad 文件夹的备份副本,然后删除了整个项目。
  4. 将我在步骤 1 中备份的原始 iPhone 项目复制回来。
  5. 添加了已备份的 Resources-iPad 文件夹,并对其进行了编辑,使其看起来适合 iPad。
  6. 我现在有一个看起来不错的目标,我在目标摘要中将它设置为通用设备,而不是 iPhone。
  7. 但是,我在部署到模拟器或设备时遇到了不一致的行为 - 有时会无缘无故地使用错误的 xib。
  8. 这修复了它 - 在 xcode 中,在 Resources-iPad/classes 文件夹中,将 ipad 的所有 xib 从 mynibname.xib 重命名为 mynibname~ipad.xib(tilda 在前面,全部小写)

我找不到任何关于这样做是否可以的文档。到目前为止,它适用于这些物理设备:

配备 4.3 的 iPad 2、配备 3.1.2 的 iPod touch v1、配备 4.1 的 iPod touch v4(视网膜)

这是创建通用应用程序的正确方法吗?现在我已经解决了这个问题似乎很容易,但是花了很长时间才找到这个信息。哦,我也没有 mainwindow.xib,但其他 nib 在其他地方作为表格视图部分标题和选项卡应用程序中的详细视图加载 - 所以我将主界面部分留空。

哦 - 我没有 iPad 1,无法在该设备上进行测试,但它似乎无法在 iPad 3.2 模拟器中正常工作,但所有其他设备和模拟器似乎都可以正常工作。

【问题讨论】:

  • 现在更好的方法是制作两个故事板,一个用于 iPhone,一个用于 iPad。

标签: xcode xib nib universal


【解决方案1】:

我见过很多人为每个设备使用 2 个单独的类。为什么?不能告诉你!

我所做的是为 iPad 和 iPhone 使用 1 个类,只是我使用宏来确定当前设备是什么:

举例

#define IDIOM           UI_USER_INTERFACE_IDIOM()
#define IPAD            UIUserInterfaceIdiomPad   

if (IDIOM == IPAD)
{
    /* do something specific for iPad. */
} else {
    /* do something specific for iPhone, like set up frames. */
}

当然,您需要创建您的界面的 iPad 版本,但这很容易。

至于将其识别为通用应用程序,您的项目设置中有一个选项,以及构建设置中的目标设备系列,您将确保将其设置为 iPhone /iPad

这几乎就是我制作通用应用程序所做的所有工作,而且为每个设备编写特定类所花费的时间要少得多!

【讨论】:

  • 谢谢 - 我的代码似乎没问题 - 它可以正常工作并加载新的笔尖而无需任何其他更改。就像你说的,我需要确保设置了目标设备系列。如果没有人认为我做错了,我想我会放弃对 iOS 4 之前的支持并继续演出。
  • 我认为现在停止支持 3.x 是安全的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-07-02
  • 1970-01-01
  • 1970-01-01
  • 2015-01-24
  • 1970-01-01
  • 1970-01-01
  • 2014-10-09
相关资源
最近更新 更多