1

最初はセグエをあまり信用していませんでしたが (セグエが正しく設定されていないとクラッシュし、内部で何が起こっているのかわかりませんでした)、以前よりセグエを使用するようになりました。私はまだ何が起こっているのか正確に「理解」していません。

UINavigationController が関与していない ViewController A と ViewController B の間にセグエがあります。私が気に入っている FlipHorizo​​ntal トランジションを行います。

A がセグエを開始すると、A インスタンスはどうなりますか? A のメソッドにログ ステートメントを入れましたが、viewDidUnload呼び出されません。それで、Aはまだ潜んでいますか?すべての変数をそのままにして、 A の同じインスタンスにセグエバックできるようにしたいのですが、その方法を理解できませんでした。

テストとして、A を Nav コントローラーに埋め込み、セグエと B へのプッシュの両方を試みましたが、A のインスタンスに戻ることができませんでした。

4

1 に答える 1

0

ビューとコントローラーの違いを覚えておいてください。呼び出し元のコントローラーはまだ存在しており、ビューも同様です。ただし、画面上にない VIEW は、システムによってアンロードされる可能性があります。そのとき、viewDidUnload が呼び出されます。

基本的に、コントローラーは、他のすべてのオブジェクトと同様に、それへのすべての参照がなくなるまで存続します。さらに、コントローラーが所有するものはすべてまだ生きています。ただし、生きている間は、「必要のないもの、または再構築できるものはすべて削除してください」という 2 つの重要なメッセージを受け取ることができます。

それらの 1 つが viewDidUnload です。もう 1 つは didReceiveMemoryWarning です。

そうです、NavController の奥深くに 100 個のビュー コントローラーがスタックされている場合、100 個のビュー コントローラーはすべて存在しますが、一部のビューは存在しない可能性があります。

于 2012-04-17T01:18:14.280 に答える