UIViewController在应用程序委托中手动实例化

问题描述:

我刚刚开始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];UIViewController在应用程序委托中手动实例化

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

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

因此,通过将视图控制器从库拖动到MainWindow.xib中的文档窗口中,实质上是实现了该对象(虽然它存档在nib文件中)。因此,不需要在应用程序委托中手动实例化它。只需将视图控制器的视图添加到窗口即可完成。

+0

“从嘴里醒来” – SK9 2010-12-06 08:54:25