我的Cocoa上有点生疏,有一个简单的问题。当我在XCode 4中创建一个“基于视图的应用程序”时,我得到一个主窗口xib,一个app委托,以及一个UIViewController子类和xib。主窗口xib包含UIViewController子类作为对象。但是我没有在代码或检查器中的任何地方看到对此UIViewController的“init”调用。这个视图控制器是如何初始化的?我猜一个嵌入对象的“init()”只是神奇地以某种方式被调用?
答案 0 :(得分:1)
self.window.rootViewController = self.viewController;
它们通过MainWindow.xib文件连接
如果要在从xib / nib加载viewcontroller时自定义内容,则需要覆盖viewcontroller中的方法- (id)initWithCoder:(NSCoder *)inCoder
示例:
- (id)initWithCoder:(NSCoder *)theCoder {
self = [super initWithCoder:theCoder];
if(self) {
// your fancy stuff here!
}
return self;
}
答案 1 :(得分:1)
请查看when exactly do Interface Builder items get instantiated?,我已经提供了一个描述nib加载过程的答案。