将 xcode 4.6 iPhone 应用程序转换为通用应用程序

Posted

技术标签:

【中文标题】将 xcode 4.6 iPhone 应用程序转换为通用应用程序【英文标题】:Convert xcode 4.6 iPhone app in to Universal app 【发布时间】:2013-09-05 07:42:26 【问题描述】:

我正在尝试将现有的 iPhone 应用程序项目升级为通用应用程序, 我已经实施了以下步骤,

第 1 步: 项目导航器 - 目标 - 摘要 - 设备 - 通用(从 iPhone 到通用)

第 2 步:在 Storyboard 中创建带有 NavigationBar Flow 的 TabBar,

当我在 iPhone 中运行我的项目时,它可以正常工作,但是当我在 iPad 中运行时,它只显示带有 NavigationBar 的 TabBar。

现在我的问题是如何为 iPad 创建新的.xib 文件?当我将我的设备从 iPhone 选择到 Universal 时,Xocde 不会自动创建。

如何将我的 iPhone .xib 文件映射到 iPad。

我是否需要为 iPhone .xib 中的所有按钮创建新的 Outlet 和操作?

提前致谢。

【问题讨论】:

您是在使用情节提要还是单独的 xib 文件或两者兼而有之? 每个视图控制器的故事板和 xib 文件的混合。 您需要为每个 ipad 屏幕创建新的 xib 文件,您可以通过将 viewcontroller 组件从右侧拖动到情节提要并选择从 iphone 屏幕到 ipad 屏幕的视图控制器的大小来完成跨度> xcode不会自动为ipad创建xib文件是对的。您必须自己执行此操作并以编程方式(或通过相应故事板中的配置)决定调用哪个。在一些简单的情况下,您可以将相同的视图控制器与 ipad 和 iphone 版本的 xib 文件一起使用。如果您真的想利用 ipad 的功能,那么您可能会得到一些完全不同的导航逻辑,这可能(或可能不取决于您的架构有多智能)也需要 iPad 特定的视图控制器。 好吧,两者兼而有之。这不是一个坏主意。您的应用程序将触发特定于设备类型的故事板。然后你从那里去。我假设您以编程方式推送或呈现带有独立 xib 文件的单个视图控制器。在那里,您可以以编程方式决定您是否在 ipad 上并调用其中一个或另一个。坦率地说,我不确定文件名中的 ~ipad 后缀是否适用于 xib 文件,其方式与适用于图像或其他资源的方式相同。 (我想我读到过,但我自己从未尝试过使用 xib 文件名。) 【参考方案1】:

为所有视图控制器创建一个新的 xib,以“~ipad”为后缀命名视图控制器(例如 FirstViewController~ipad.xib)

当应用程序在 ipad 中运行时,xcode 将自动使用 xib。通过 xib 中的身份检查器将您新创建的 xib 与适当的类链接。

注意:创建新的xib后,添加现有视图控制器中添加的所有控件,并将新添加的控件与文件所有者链接。

添加所有控件并与文件所有者链接。

【讨论】:

我尝试了你的建议,当我尝试在 iPad 中运行我的代码时,它需要 iPhone 的 .xib 而不是 iPad 的 .xib,这里是 .xib 名称 BTSHomeViewController.xib 用于 iPhone 和 @ 987654328@ iPad 版 Xib 名称区分大小写。试试这个“BTSHomeViewController~ipad.xib”

以上是关于将 xcode 4.6 iPhone 应用程序转换为通用应用程序的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 4.6 错误 - 等待应用程序启动超时

是否可以在 Xcode5 上使用无线将开发中的应用程序发送到我的 iPhone?

如何在 Xcode 5 中手动将仅限 iPhone 的应用程序转换为 Universal?

使用 phonegap v 2.9 为 Xcode 4.6 版本构建存档失败

Xcode 7.3 如何将我现有的 iPhone 应用程序转换为通用应用程序,以便在 iOS 中与 iPad 一起使用

将 XIB 从 Xcode 5 降级到 Xcode 4.6