2017-02-27 6 views
-2

私は本の練習に続き、プログラムでView Controllerを構築し、単体テストを作成しています。この本はまたこれを言い、Appleのリファレンスドキュメントを読んでいた以前の経験から、Appleのリファレンスは常にviewDidLoad、viewWillAppear、viewDidDisappearなどを直接呼び出さないと言っています。私はなぜこれが何であるのか知りたいのですが、もしそうすればどうなりますか?なぜ、AppleはviewWillLoad、viewWillAppear、viewDidDisappearなどを呼び出さないように私たちに勧めますか?

+3

これらの方法のドキュメントをお読みください。ビューコントローラのライフサイクルについて読む。それらはフレームワークによって呼び出されます。彼らは直接呼び出されることを意図していません。 – rmaddy

+3

これはお勧めできません。それは法律です。 – matt

+1

誰かがviewWillAppearを直接呼び出すと、宇宙は即座に消滅し、さらに奇妙で不可解なものに置き換えられるという理論があります。 –

答えて

4

viewDidLoadviewWillAppearviewDidDisappearなどはせの実行時の方法は、あなたが特定の重要な事が起こっていることを知っている:

  • viewDidLoad、ビューコントローラは、ちょうどそのビュー得た

  • viewWillAppear 、ビューコントローラのビューがインターフェイスに配置されようとしています

  • viewDidDisappear、View Controllerのビューが

インターフェイスから削除されようとしているこれらは、ランタイムが担当するイベントであり、かどうかは、あなたが対応できるように、あなたは彼らが起こっている知っているように、あなたにメッセージを送信しますあなたは、適切な瞬間に願っています。

これらのものは、(ランタイムはそれらを呼び出す限り除く)が起こっているときにを知らないので、それは、あなたはそれらを呼び出すためにために意味をなさないだろう!あなたが何らかの瞬間にそれらを呼び出すと、あなたは嘘をつきます。実際にはではなく、がロードされているので、ビューがちょうど読み込まれていると言っているので、あなた自身のコードを破るか、悪化するでしょう。

関連する問題