8

3 つのレベルの UIViewControllers を備えたドリル ダウン ナビゲーション アプリがあります。各View Controllerには、それぞれのUIKeyboardをサブクラス化しようとしているUITextFieldがあります。私の質問は、通知を「設定」して「設定解除」する場所です。

通知があります:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil];

viewDidLoad イベントでそれらを設定するのが最善ですか? それともviewWillAppearイベント?

そして同様に[[NSNotificationCenter defaultCenter] removeObserver:self];

keyboardWillShow:ドリルダウンするときに複数のイベントを呼び出したくありません。

どうもありがとう、ブレット

4

2 に答える 2

7

ビューが表示または非表示になるたびにandが呼び出されるため、これらをinitanddeallocメソッドに配置することをお勧めします。これは、通知の登録/登録解除には不要です。viewWillAppearviewWillDisappear

于 2010-07-18T02:49:40.227 に答える
5

それでも、メモリを解放する必要がある場合にのみ呼び出されるため、オブザーバーとして登録viewWillAppearして登録を解除することをお勧めします。つまり、より頻繁に呼び出され、同じ通知を複数回受け取るという問題が発生する可能性があります。viewWillDisappearviewDidUnloadviewDidLoadviewDidUnload

于 2012-01-30T12:49:52.117 に答える