0

ビューコントローラをモーダルに提示すると、viewDidLoadメソッドが呼び出されないことに気づきました。

IE:

InfoViewController *v = [[Global get] infoVC];
[self presentModalViewController: v animated: true];

とにかくこれを呼ぶことができますか?viewDidLoadコードをViewDidAppearに配置しましたが、これらのアイテムがビューに2回描画されるのではないかと心配しています。二度開いたら?それともメモリから削除されますか?

4

2 に答える 2

2

viewDidLoad は、コントローラーが作成されたときにのみ呼び出されます。したがって、[[Global get] infoVC] がコントローラーを割り当てて返さない場合 (既に作成されたコントローラーを返す場合)、viewDidLoad は呼び出されません。viewDidAppear では、コントローラに関連するビューを安全に調整できます。それらを viewDidLoad で作成した場合、それらは既に存在します。

または、viewDidLoad を呼び出したい場合は、新しいコントローラーを作成します。

infoViewController *v = [[InfoViewController alloc] initWithNibName:nil bundle:nil];
[self presentModalViewController: v animated: true];
[v release];
于 2012-10-24T04:29:25.953 に答える
1

のビューにアイテムを追加するだけの場合は、代わりviewDidLoadにそのコードを入れることができます。loadView

于 2012-10-24T03:42:50.867 に答える