2012-04-26 6 views
1

新しいobjective-cクラスのUIViewControllerファイルを作成するとき。 nibファイルからビューを生成する前に、ViewController.mファイルの中のどのコマンド/メソッド/行が実行されているかを知りたい。nibファイルからビューをロードする前に実行されるメソッドまたはコマンドはありますか?

私は、viewDidLoadがnibファイルの前に最初に実行されることを知っています。 他に何かありますか?

ここで小さなnoobをご利用いただきありがとうございます。

答えて

1

あなたのビュー階層がロードされる前に呼び出される唯一の方法は、initWithNibName:bundle:方法です。 次に、初めてビューコントローラのviewにアクセスし、nibがロードされ(loadviewメソッド経由)、次にviewDidLoadメソッドが呼び出されます。 これが明らかになることを願っています。

ps。あなたのビューを作成し、 ビューコントローラを初期化するためにInterface Builderを使用する場合は、このメソッドをオーバーライドしてはならない

:あなたはloadviewメソッドをオーバーライドすることもできますが、Appleは述べています。 (loadviewメソッドに関するアップルのドキュメント

+0

これは非常に明確です。どうもありがとうございます。小さなこと。私が '[ViewController alloc]'または '[[ViewController alloc] initWithNibName:nil bundle:nil]'を呼び出し、 '[self viewDidLoad]'をもう一度呼びます。それを実行するとビューが生成されるときと同じようになるのでしょうか? –

+0

自分でviewDidLoadを呼び出さない。これは、ビュー階層がロードされたとき(あなたのケースのペン先から)呼び出されるデリゲートメソッドです。これがあなたのビューのソースであれば、ペン先を渡さずにコントローラを初期化するのは何ですか?一般的なルールとして、 'loadview'メソッドをオーバーライドするのは、nibファイルではなくプログラムでビュー階層を作成する場合だけです。 – Alladinian

0

-(void)loadViewメソッドを試してください。これは、ビューコントローラのビューが設定される前に呼び出され、実際にはself(コントローラ)のviewプロパティを設定する場所です。

-(void)loadView 
{ 
    self.view = [[UIView alloc] initWithFrame:...]; //Or get it from the nib... 
} 
+0

ありがとうございました。やってみます。 –

関連する問題