2

我刚刚开始 iPhone 开发(来自 .Net 世界)并且已经通过许多“Hello World”应用程序来掌握这个新开发平台的窍门。我一直感到困惑的一个领域是视图控制器的实例化。在 Apple 的“Hello World”教程中,他们首先创建了一个基于 Window 的应用程序,该应用程序默认情况下没有视图控制器。然后他们创建一个 UIViewController 并在应用程序委托中手动实例化该控制器,然后简单地将视图控制器添加到窗口(http://developer.apple.com/iphone/library/documentation/iPhone/Conceptual/iPhone101/Articles/ 03_AddingViewController.html#//apple_ref/doc/uid/TP40007514-CH5-SW5)。

相反,如果我要创建一个新的“基于视图的应用程序”项目并查看委托实现,那么将视图控制器链接到主窗口所做的一切就是以下行: [window addSubview:viewController.view];

为什么教程指出我必须通过 alloc/init 手动实例化视图控制器,而预构建的“基于视图的应用程序”模板只是将视图控制器视图添加到窗口?两者有什么区别?

4

1 回答 1

2

通过更多的挖掘,我找到了自己问题的答案。当你创建一个基于视图的应用程序时,你会注意到如果你双击 MainWindow.xib,文档窗口中的一个对象是一个视图控制器,它已经连接到 [ProjectName]ViewController 类(一个类是在您选择基于视图的应用程序时自动创建的)。

因此,通过将视图控制器从库中拖入 MainWindow.xib 中的文档窗口,您实际上是在实例化该对象(尽管它已存档在 nib 文件中)。因此,无需在应用程序委托中手动实例化它。只需将该视图控制器的视图添加到窗口中即可。

于 2009-08-12T17:10:30.330 回答