Проблема с уведомлением IOS - PullRequest
0 голосов
/ 03 ноября 2010

Я работаю над Уведомлением, и я понимаю, что уведомления IOS, такие как "textFieldShouldBeginEditing: (UITextField *) iTextField", публикуются только при нажатии на текстовое поле.

К моему странному уведомлению, моеКод получает это уведомление, когда я нажимаю кнопку «Назад», чтобы вернуться к моему предыдущему виду.

Каковы возможные шансы на получение этого уведомления снова.Я считаю, что нам не нужно регистрироваться для таких уведомлений.Я зарегистрировался только для того, чтобы скрыть / показать уведомления клавиатуры.

Пожалуйста, предложите.

Ответы [ 2 ]

0 голосов
/ 04 ноября 2010

Я нашел проблему.Проблема заключалась в том, что я добавлял свое текстовое поле в качестве первого респондента перед вызовом сервера, а затем удалял его только тогда, когда вы нажимаете кнопку возврата или нажимаете любое другое текстовое поле.Вот почему он не смирился с нажатием кнопки назад.Теперь я подал в отставку вскоре после вызова сервера.

0 голосов
/ 03 ноября 2010

Редактировать: я неправильно понял вопрос.См. Ответ ОП.

Что ж, клавиатура пропадет при навигации.Это имеет смысл, что уведомление размещено в этом случае.Один из способов игнорировать уведомления, сгенерированные в ответ на переходы представления, состоит в отслеживании состояния контроллера представления.

- (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.
}
...