【发布时间】: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。谁能推我到这里来?谢谢!
【问题讨论】: