2009-08-12 8 views
2

私はiPhone開発を開始しています(.Netの世界に来ています)。この新しい開発プラットフォームのハングアップを得るために、多くの "Hello World"アプリケーションを使っています。私が混乱させた1つの領域は、View Controllerのインスタンス化です。 Appleの "Hello World"チュートリアルでは、まずウィンドウベースのアプリケーションを作成します。これは、デフォルトではView Controllerがありません。次に、UIViewControllerを作成し、そのコントローラをアプリケーションデリゲートで手動でインスタンス化した後、ビューコントローラをウィンドウに単に追加します(http://developer.apple.com/iphone/library/documentation/iPhone/Conceptual/iPhone101/Articles/03_AddingViewController.html#//apple_ref/doc/uid/TP40007514-CH5-SW5)。UIViewControllerアプリケーションデリゲート内での手動インスタンシエーション

対照的に、新しい「ビューベースのアプリケーション」プロジェクトを作成してデリゲートの実装を見ると、そのビューコントローラをメインウィンドウにリンクするために行われたすべてが次の行です: [window addSubview: viewController.view];

なぜビルドされた「ビューベースのアプリケーション」テンプレートが単にウィンドウにビューコントローラビューを追加するときに、alloc/initを使用して手動でビューコントローラをインスタンス化する必要があることが示されていますか?両者の違いは何ですか?

答えて

2

私は自分の質問に対する答えを見つけました。ビューベースアプリケーションを作成すると、MainWindow.xibをダブルクリックすると、ドキュメントウィンドウ内のオブジェクトの1つが、[ProjectName] ViewControllerクラスに既に接続されているView Controllerになります。ビューベースのアプリケーションを選択すると自動的に作成されました)。

したがって、View ControllerをLibraryからMainWindow.xibのDocument Windowにドラッグすると、そのオブジェクトは本質的に(nibファイルにアーカイブされていますが)そのオブジェクトをインスタンシエートしています。したがって、アプリケーションデリゲートで手動でインスタンス化する必要はありません。そのビューコントローラのビューをウィンドウに追加するだけです。

+0

「Awake from nib」 – SK9

関連する問題