【问题标题】:Laying out Universal Apps in XCode 4在 XCode 4 中布局通用应用程序
【发布时间】:2011-11-13 21:11:18
【问题描述】:

我正在尝试在 Xcode 4 中创建通用(iphone/ipad)应用程序的基本步骤。如果可能,我不想使用接口生成器,我想摆脱繁琐的 if声明:

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {

我创建了一个“基于窗口的项目”来获取 Apple 提供的通用模板。这给了我三个应用程序代表,iPhone 和 iPad 在它们的特定文件夹中拥有自己的 XIB。

我现在想添加一个视图控制器,所以我创建了一个主“MasterViewController”,以及两个子类版本“MasterViewController_iPhone”和“MasterViewController_iPad”。我不使用任何这些创建 XIB。 (我需要吗?)

这就是我感到困惑的地方。在主应用程序委托中,我放置了代码

[self.window makeKeyAndVisible];

我没有添加任何其他代码,允许子类化的应用程序委托实例化它们各自的视图控制器。例如,在我放置的 iphone 应用程序委托中:

myVC_iPhone = [[MasterViewController_iPhone alloc] initWithNibName:nil bundle:nil]; 
[self.window addSubview: myVC_iPhone];

但这给了我错误:

Incompatible pointer types sending 'MasterViewController_iPhone *' to parameter of type 'UIView *'

我在这里缺少一些基本的东西。也许我的命名约定是错误的;也许 makeKeyAndVisible 不应该在主应用程序委托中;也许我需要每个视图控制器的 XIB。谁能推我到这里来?谢谢!

【问题讨论】:

    标签: ios xcode4 universal


    【解决方案1】:

    addSubview: 将 UIView 作为参数,而不是围绕它的视图控制器。使用[self.window addSubview: myVC_iPhone.view]; 应该没问题。

    【讨论】:

    • 是的,就是这样。愚蠢的错误。
    【解决方案2】:

    如何将您的视图控制器添加为rootViewController

    self.window.rootViewController = myVC_iPhone;
    

    【讨论】:

      猜你喜欢
      • 2011-07-31
      • 2014-07-06
      • 1970-01-01
      • 1970-01-01
      • 2017-08-22
      • 2015-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多