2009-08-12 39 views
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];UIViewController在應用程序委託中手動實例化

爲什麼本教程指出當預構建的「基於視圖的應用程序」模板只是將視圖控制器視圖添加到窗口時,我必須通過alloc/init手動實例化視圖控制器?兩者有什麼區別?

回答

2

從做更多的挖掘,我找到了我自己的問題的答案。當你創建一個基於視圖的應用程序時,你會注意到如果你雙擊MainWindow.xib,文檔窗口中的一個對象就是一個已經連接到[ProjectName] ViewController類的視圖控制器(一個類在您選擇「基於視圖的應用程序」時自動創建)。

因此,通過將視圖控制器從庫拖動到MainWindow.xib中的文檔窗口中,實質上是實現了該對象(雖然它存檔在nib文件中)。因此,不需要在應用程序委託中手動實例化它。只需將視圖控制器的視圖添加到窗口即可完成。

+0

「從嘴裏醒來」 – SK9 2010-12-06 08:54:25

相關問題