2

ユーザーがデータを入力しているマルチビュープロセスがあり、その過程の各ステップでモデルクラスのプロパティに保存しています。

入力が有効かどうかを確認するために使用textFieldDidEndEditingし、有効な場合は、入力されたデータを保存します。

ビューには、すべての検証に合格したかどうかを確認し、合格した場合は次のビューをロードするcontinueButtonClickedイベントがあります。ここではモデルのプロパティを設定しません。各フィールドが一度にモデル1フィールドに保存されるため、設定する必要はないと思います。しかし、私はいくつかの問題に気づきました。

ユーザーがテキストボックス内にいて[続行]ボタンをクリックすると、continueButtonClickedイベントが。の前に発生しtextFieldDidEndEditingます。最終的に発生するのは、で保存が行われる前に、次のビューに「古い」モデルが入力されることtextFieldDidEndEditingです。

私は何が欠けていますか?続行ですべてのプロパティを設定するのは適切ですか?これは、私がWeb用にプログラミングしている場合の方法ですが、ネイティブアプリには適切ではないようです。

4

2 に答える 2

4

resignFirstResponderアクティブなtextfield/textview(またはそれらすべて)を呼び出すことができます。これにより、がトリガーされtextFieldDidEndEditingます。

-textField:shouldChangeCharactersInRange:...一般に、このようなテキスト編集の問題の場合、別のアプローチは、入力されたすべての文字の新しい値を決定できるデリゲートメソッドを悪用することです。他に方法がない場合にのみ、この方法に戻す必要があります。

于 2012-02-17T02:18:19.460 に答える
1

代わりにこれを試して、問題が解決するかどうかを確認できますか?

textFieldShouldEndEditing:
于 2012-02-17T02:19:19.707 に答える