Xcode: Почему мое приложение не сохраняет UITextField? - PullRequest
0 голосов
/ 25 сентября 2011

У меня есть приложение, в котором я переключаюсь на представление с помощью TableView, используя presentModalViewController.Однако View с TableView находится не в UITableViewController, а в обычном UIViewController.Я написал UITextFields в UITableViewCells.Я использую это действие, чтобы сохранить то, что пользователь вводит:

- (IBAction)saveTextField:(id)sender {

NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setObject:TextField.text forKey:@"keyTextField"];
[userDefaults synchronize]; }

Я вызываю этот метод с этим кодом:

    [TextField addTarget:self action:@selector(hideKeyboard:) forControlEvents:UIControlEventEditingDidEndOnExit];

Когда я закрываю ViewController с помощью dismissModalViewController, а затем, когда я представляю егоя снова вызываю NSUserDefaults в ViewDidLoad с этим кодом:

NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
TextField.text = [userDefaults objectForKey:@"keyTextField"];

Проблема в том, что он не работает.И я не могу понять проблему.Любая помощь будет оценена.

Заранее спасибо:)

Ответы [ 4 ]

1 голос
/ 26 сентября 2011

Для начала: спасибо всем за ваши усилия и время:)

Оказывается, проблема не в коде, который сохраняет и загружает его.Проблема заключалась в том, что я создал только одно поле UIText, которое затем помещал в каждый UITableViewCell, и это было проблемой.Поэтому я создал отдельные UITextFields для каждого UITableViewCells, и это решило проблему:)

1 голос
/ 26 сентября 2011

Вместо установки цели, вы не можете сделать это с помощью метода textFieldDidEndEditing: делегата?

1 голос
/ 26 сентября 2011

используйте этот код в виду загрузил NSUserDefaults * user = [NSUserDefaults standardUserDefaults]; TextField.text = [пользователь stringForKey: @ "keyTextField"];

1 голос
/ 25 сентября 2011

target должен быть таким же, как ваш метод, это означает, что если у вас есть - (void)saveTextField:(id)sender, то для добавления цели вы должны набрать код

 [TextField addTarget:self action:@selector(saveTextField:) forControlEvents:UIControlEventEditingDidEndOnExit];

Проверьте usin NSLog, выполняется ли ваше действие.

...