編集:質問を誤解しました。OPの答えを見てください。
さて、ナビゲーションするとキーボードが消えます。この場合、通知が投稿されることは理にかなっています。ビューの遷移に応じて生成された通知を無視する 1 つの方法は、View Controller の状態を追跡することです。
- (void)viewWillDisappear:(BOOL)animated {
_transitioningView = YES;
}
- (void)viewDidDisappear:(BOOL)animated {
_transitioningView = NO;
}
- (void)viewWillAppear:(BOOL)animated {
_transitioningView = YES;
}
- (void)viewDidAppear:(BOOL)animated {
_transitioningView = NO;
}
これで、キーボード通知によって呼び出されるセレクターで、ビューが遷移している場合に戻ることができます。
- (void)keyboardWillHide:(NSNotification*)notif {
if (_transitioningView)
return;
// Handle keyboard dismissal.
}