2009-07-10 4 views
1

addSubviewメソッドが実際にビューをアプリケーションにロードするかどうかを確認しますか?私が願っているのは、私のアプリケーションに2つのビューがあるからです。アプリケーションデリゲートは、2つのビューをサブビューとして追加し、ビューの1つを前面に表示します。今、各ビューのviewDidLoadメソッドのそれぞれにprintステートメントがあります。アプリケーションを実行すると、アプリケーションデリゲートはビューをサブビューとしてロードし、各ビューがロードされると、viewDidLoadメソッドのそれぞれに配置されたステートメントをコンソールに表示します。これはこれをすることになっていますか?UIWindowとUIView addSubview質問

答えて

5

viewDidLoadは実際にはUIViewControllerのメソッドであり、UIViewではありません。ビューがメモリにロードされた後(initメソッドの後、awakeFromNibの前)に呼び出されます。 addSubview:はUIViewをパラメータとして取ります。そのため、ビューを別のビューに追加するにはビューをロードする必要があります。それ以外の場合は、架空のビューを追加しようとしています。

あなたの質問に答えて、はい、これを行うことになっています。 viewDidLoadは、サブビューを追加するよりも前に呼び出されます。実際、addSubview:行を取り出すと、(ビューのコントローラを作成しているので)まだ呼び出されていることに気付くでしょう。

+1

だから私は10ビューを持っている...すべての10が読み込まれる?これまで「必要に応じてビューをロードするだけ」に何が起こったのですか? サブビューをウィンドウに「追加」するのは本当に「表示する」だけですか? 実際には* LOAD *のビューを実行しているコードはどこですか? – Bonnie

0

私の理解では、ビューは遅延ロードされます。あなたのviewcontrollerが10のビューを持っている場合、実際にそれらにアクセスしようとするまで、それらはすべてロードされていません。

関連する問題