2009-07-31 3 views
0

私はInterface BuilderなしでiPhone用に開発することを学習しています(個人的な好みです)、ビューコントローラのどの機能をビューを設定するべきかよく分かりませんin:init、viewDidLoad、またはloadView。私はどこかで、ビューコントローラのinitを使用するだけで、問題が発生する可能性があるので、ビューを設定しないでください。私はまた、viewDidLoadはnibファイルから読み込むためだけであることを読んだが、それを使用しようとしたときに働いた。だから、これらの3つのメソッドのそれぞれに何を置くべきだろうか?iPhone開発 - ビューコントローラでビューを設定する

ありがとうございます!

答えて

2

まあ各メソッドは、独自の目的

1を持っているが)このメソッドは、単にのViewControllerを初期化することを目的と

をinitに、あなたは、このメソッドをオーバーライドする必要がありますが、いくつかのカスタムの初期化を行いたい場合はされていません任意のビューがロードされる前に、これはそれを行う場所になる可能性があります。あなたはinitメソッドのさまざまな味を持っています。あなたはAppleのサイトのdocsで見ることができます。

2)loadView ここでは、このメソッドを使用してビューをプログラムで作成します。このメソッドをオーバーライドしないと、デフォルトで空のビューが作成されますが、viewController.viewプロパティをMUSt初期化すると、UIViewControllerビューがスーパービューにプッシュされたときに呼び出されます。

3)viewDidLoad このメソッドは、ビューがロードされた後に呼び出されます(loadViewが呼び出され、ビューがスーパービューまたはウィンドウにプッシュされた後)。ここでは、コントローラのビューにサブビューを追加することができます。また、ビューの読み込み後に発生させたい他の設定を行うこともできます。この方法は、ビューをペン先またはプログラムで作成するかどうかに関係なく機能します。

+0

これはappleDocのviewDidLoadからのものです:ビューコントローラがnibファイルからアーカイブされていない場合、このメソッドはビューが設定された後に呼び出されます。したがって、サブクラスは、nibからロードされたオブジェクトを初期化するために、loadViewメソッドではなく、このメソッドをオーバーライドする必要があります。----かなりnib - > viewDidLoad、programatically - > loadView、そうですか? – mk12

+0

いいえ、これは、nibを使用している場合は、Nibでビューの設定が既に完了しているため、DONTがloadViewをオーバーライドしているとします。これはすべて – Daniel

+0

だから、あなたがビューとしてnibを使用しているviewcontrollerで追加の設定をしたいのであれば、viewDidLoadで行う必要があります。loadViewで行うことはできません。 – Daniel