【问题标题】:Converting an iPhone app to a Universal app?将 iPhone 应用程序转换为通用应用程序?
【发布时间】:2011-10-24 02:08:04
【问题描述】:

我有一个 iPhone 应用程序 FirstViewController 和 SecondViewController 具有各自的视图 FirstView.xib 和 SecondView.xib。

现在我想让这个应用同时在 iPhone 和 iPad 上运行。对于 iPad,我需要将 Firstview.xib 和 SecondView.xib 合并为一个 ThirdView-iPad.xib。

最好的方法是什么?我是否需要为 iPad 编写另一个 ViewController 类,还是可以将现有的 FirstViewController 和 SecondViewController 与单个 xib 一起使用?

到目前为止,我的研究表明,没有办法将多个 ViewController 与单个 xib 一起使用。请告诉我执行此操作的最佳方法。

谢谢

【问题讨论】:

    标签: iphone ipad universal


    【解决方案1】:

    你最好只创建一个新的 ViewController,除非你喜欢受虐狂。以这种方式重用很可能会很麻烦,如果您需要在 ViewControllers 中重用逻辑,我会选择聚合或继承。

    我通常会创建一个基本 ViewController,比如 XYZViewController,然后创建一个包含所有 iPhone 特价商品的 XYZViewController_iPhone 和一个单独的 XYZViewController_iPad 用于 iPad。但如果它们完全不同,我会给它们唯一的名称和它们自己的 NIB 以及 ViewControllers。

    【讨论】:

      【解决方案2】:

      如果你使用的是 Xcode4,你可以使用“过渡到通用目标”,它会做所有需要的事情

      http://xcodebook.com/2011/05/making-an-ios-target-universal/

      如果您没有它,那么我建议您将控制器放在您的 xib 之外。 xib 文件将仅包含 iphone 和 ipad 的视图,但控制器“可以”相同。并且您可以从 rootviewcontroller 控制您的逻辑,只是一个想法..这完全取决于您的项目。

      【讨论】:

      • 谢谢...我的问题是我必须将两个 iPhone 视图合并到一个 iPad 视图中。在那种情况下,是否可以使用相同的控制器?如果是,如何?
      • @Atif 这意味着会有完全不同的视图,因此您可以为此使用另一个控制器。我建议您首先创建一个通用项目并尝试部署您的应用程序,您将看到您的可能性以及您需要做得更好的地方。你仍然可以使用第一个“过渡到通用目标”
      【解决方案3】:

      将 Iphone 应用程序转换为通用应用程序有以下规则

      1) 在 Plist 文件中添加 NSMainNibFile~ipad .... MainWindow_ipad(ipad 窗口)。

      2) 实现单独的名称 Xib(Iphone 和 ipad)

      3) 在 Target Targeted Device Family 中设置为 (iphone/ipad) 并根据 Ipad 和 iPhone 设置帧 例如

      如果(UI_USER_INTERFACE_IDIOM()==UIUserInterfaceIdiomPad) {

      btnHme.frame=CGRectMake(971,6, 32, 32); //ipad

      } 别的 {

      btnHme.frame=CGRectMake(438,6, 32, 32); //iphone

      }

      干杯

      【讨论】:

        猜你喜欢
        • 2015-11-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-10
        • 2011-08-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多