Редактировать: я неправильно понял вопрос.См. Ответ ОП.
Что ж, клавиатура пропадет при навигации.Это имеет смысл, что уведомление размещено в этом случае.Один из способов игнорировать уведомления, сгенерированные в ответ на переходы представления, состоит в отслеживании состояния контроллера представления.
- (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.
}