0

私は通知に取り組んでおり、これに関する私の理解は、「textFieldShouldBeginEditing:(UITextField *)iTextField」のような IOS 通知は、テキスト フィールドをタップしたときにのみ投稿されるということです。

奇妙なことに、「戻る」ボタンをタップして前のビューに戻ると、コードがこの通知を受け取ります。

この通知を再度受け取る可能性はどのくらいありますか? そのような通知に登録する必要はないと思います。キーボードの非表示/表示通知のみを登録しました。

提案してください。

4

2 に答える 2

0

編集:質問を誤解しました。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.
}
于 2010-11-03T20:34:58.343 に答える
0

問題が見つかりました。問題は、サーバー呼び出しの前にテキストフィールドを最初の応答者として追加していて、リターンボタンを押すか他のテキストフィールドを押したときにのみ削除していたことです。そのため、戻るボタンが押されたときに辞任していませんでした。サーバーコールの直後に辞任しました。

于 2010-11-03T23:54:05.497 に答える