2

私は iPhone の開発を始めたばかりで (.Net の世界から)、この新しい開発プラットフォームのコツをつかむために多くの「Hello World」アプリケーションを試してきました。私が混乱している領域の 1 つは、View Controller のインスタンス化です。Apple の「Hello World」チュートリアルでは、デフォルトでビュー コントローラーを持たないウィンドウ ベースのアプリを作成することから始めます。次に、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 を介してビュー コントローラを手動でインスタンス化する必要があるとチュートリアルが示しているのはなぜですか? 2つの違いは何ですか?

4

1 に答える 1

2

さらに掘り下げた結果、私は自分の質問に対する答えを見つけました。ビュー ベース アプリケーションを作成する場合、MainWindow.xib をダブルクリックすると、ドキュメント ウィンドウ内のオブジェクトの 1 つが [ProjectName]ViewController クラスに既に接続されているビュー コントローラーであることがわかります ( View Based Application を選択すると自動的に作成されます)。

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

于 2009-08-12T17:10:30.330 に答える