2016-06-01 5 views
0

View ControllerがviewWillDisappearを呼び出すとデリゲートをnilに設定する必要がありますか?もちろん、viewWillAppearが呼び出されたときにデリゲートを再度設定します。delegateをviewWillDisearのnilに設定していますか?

ビューコントローラがアクティブではないのにデリゲートがまだビューコントローラにメッセージを送信するように設定されている場合、デリゲートとその呼び出しはどうなりますか?

答えて

2

実際の使用状況によって異なります。ビューコントローラがデリゲートコールバックを無視するようにしたい場合は、デリゲートをviewWillDisappearに指定しないでください。しかし、私はこれがいくつかのケースでは危険であることを発見しました。 UITableViewのdataSourceを考えてみましょう。 viewWillDisappearでdataSourceを指定しないと、何らかの理由でreloadDataにしようとすると、ビューが見えなくなり、テーブルビューが正しくリロードされません。

私は通常、除外したいのはdeallocです。

関連する問題