私はユーザーがデータを入力しているマルチビュープロセスを持っており、途中でモデルのクラスプロパティに保存しています。textFieldDidEndEditing "遅すぎる"
私はtextFieldDidEndEditing
を使用して入力が有効であるかどうかを確認し、入力した場合は入力したデータを保存します。
私は、すべての検証がパスしたかどうかを確認し、そうであれば次のビューをロードするcontinueButtonClickedイベントがあります。私はここでモデルのプロパティを設定しません。なぜなら、各フィールドはモデル1のフィールドに一度に保存されるからです。しかし、私はいくつかの問題に気づいた。
ユーザーがテキストボックス内にあり、[続行]ボタンをクリックした場合、continueButtonClickedイベントはtextFieldDidEndEditing
より前に発生します。何が起きるのかは、次のビューに保存が行われる前に「古い」モデルが表示されていることです(textFieldDidEndEditing
)。
私には何が欠けていますか?すべてのプロパティを[続行]に設定するのは適切ですか?それは私がウェブ用にプログラミングしていたなら、それをやる方法ですが、それはネイティブアプリにとっては正しいとは言えません。
恐ろしい!これは問題を解決したようです。私はtextFieldShouldEndEditingが2回発生する理由について少し混乱しています:すべてのフィールドのcontinueButtonClickの前に1回、continueButtonClickイベントが発生した後のアクティブなフィールドの2回目です。それは無害だが、好奇心が強い。 – jaySF
これが本当に必要なアクティブなものであれば、最初のレスポンダがテストされているかどうかを常にテストして判断できます。 – mbh