1

それぞれ一連の uitextfields を持つ一連のビューコントローラーを持つ iPad アプリがあります。基本的に私ができるようにしたいのは、さまざまなビューコントローラーをナビゲートするときに、編集された各 uitextfield にテキストが残るようにすることです。特定のビューコントローラーを離れて戻ってくると、各 uitextfield が空になります。これを修正するには、viewWillDisappear または viewDidDisappear メソッドを呼び出しますか? もしそうなら、各テキストフィールド内に情報を保存するにはどうすればよいですか?

4

2 に答える 2

2

モーダルセグエをやっているだけですか?前のビューに戻りたい場合は、 を使用するだけで、[self dismissViewControllerAnimated:YES completion:nil]以前に入力した内容がすべて残ります。テキストが表示されなくなるのは、最初のビューに戻った場合のみです。ただし、何らかの理由で最初のビューに戻る必要がある場合は、テキストを NSUserDefaults に保存してから、viewWillAppear に保存された値をフィールドに入力することができます。ただし、循環セグエを実行するよりも、常に viewController を無視することをお勧めします。

于 2013-01-09T23:56:34.610 に答える
0

メソッドを悪用してshouldChangeCharactersInRange、これまでに入力した文字を余分な文字列に保存し、viewcontroller を切り替えた後に復元することができます。

アップデート

ビュー内の各テキスト フィールドに対して、saveString を設定して関連付ける必要があります。タグ値を配列インデックスとして作成すると、次のようになります。

<UITextFieldDelegate>クラスのインターフェース定義を追加する

各テキストフィールドのデリゲートをに設定しますself

このメソッドを追加

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
    NSString *s = [textField replaceCharactersInRange:range withString:string];
    NSLog(@"current textfield value '%@'", s);
    // save s somwhere, e.g. to userdefaults or a DB table
    return YES;
}

前のビューに切り替えた後、各テキストフィールドの以前の内容を復元できます。このメソッドがいつ呼び出されるかを確認できるように、NSLog() を入れました。

于 2013-01-09T21:36:44.380 に答える