2012-05-14 13 views
6

viewDidUnloadviewDidDisappearの間に何かを実装する必要があるとわかりません。両者の違いは何ですか?viewDidUnload対viewDidDisappear

たとえば、ビューコントローラがビュー階層から削除されたときにNSNotificatonを送信したいとします。これらの2つの方法の間で、私はその通知を投稿する場所が重要ですか?

http://developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/UIViewController_Class/Reference/Reference.html

+0

なぜこれが投票されましたか?質問があまりにも曖昧でしたか? – kevlar

+0

は、これらの2つの方法の違いを説明するのに十分な文書ではありませんか? –

答えて

5

これは、Appleのドキュメントを参照している: -

viewDidUnload: -

メモリ不足の状態が発生すると、現在のView Controllerのビューが必要とされていない場合は、システムからこれらのビューを削除することを選ぶことメモリ。このメソッドは、View Controllerのビューが解放された後に呼び出され、最終的なクリーンアップを実行する機会です。ビューコントローラがビューまたはそのサブビューへの個別の参照を格納する場合は、このメソッドを使用してそれらの参照を解放する必要があります。また、このメソッドを使用して、ビューをサポートするために作成したオブジェクトへの参照を削除することもできます。ただし、ビューがなくなったので不要になりました。

viewDidDisappear: -

は、そのビューが毎回ビュー。消えるか、または他のビューに移動ビュー階層から削除されたビューコントローラに通知します。

0

viewDidDisappearビューが消えているか、あなたが他のビューに移動し、コントローラのビューがメモリから解放されるとviewDidUnloadが呼び出されるたびに呼び出されます。 (iOS 6.0では廃止されました。メモリ不足の状態でビューがパージされなくなるため、このメソッドは呼び出されません)see the reference

+0

おかげさまで、viewController自体が最後に破棄されたときにviewDidUnloadが呼び出されることがわかりましたが、別のビューに移行するときにviewDidDisappearが呼び出されます。たとえば、A - > B - > Cのビューコントローラがあり、Bが破棄され、コントロールがAに​​戻るときを知りたければ、viewDidUnloadを使うべきです。それはBがCに行くときでもb/cです、viewDidDisappearもまた発火します。 – kevlar

+4

これは間違っています。 'viewDidUnload'はメモリ状態が低いためにビューが解放されたときに呼び出される** only **です。他の理由でリリースされた場合、 'viewDidUnload'イベントは発生しません。 –

関連する問題