Установить данные текстового поля на кнопку Сохранить в iphone - PullRequest
0 голосов
/ 17 августа 2011

У меня есть контроллер modalview и две кнопки на нем: Отмена и Сохранить. Существует UITextField, который можно редактировать. Всякий раз, когда я нажимаю кнопку «Сохранить», я сохраняю ее, но текст не сохраняется, потому что, когда я нажимаю на кнопку, чтобы открыть контроллер modalview, текст исчезает. Не знаю, что не так с моим кодом. Вот мой код:

- (void)viewWillAppear:(BOOL)animated {

self.cancel = self.navigationItem.leftBarButtonItem;
self.save = self.navigationItem.rightBarButtonItem;

UIBarButtonItem *cancelButton = [[UIBarButtonItem alloc] initWithTitle:@"Cancel" style:UIBarButtonItemStylePlain target:self action:@selector(cancelAction)];
self.navigationItem.leftBarButtonItem = cancelButton;
[cancelButton release];

UIBarButtonItem *saveButton = [[UIBarButtonItem alloc] initWithTitle:@"Save" style:UIBarButtonItemStylePlain target:self action:@selector(saveAction)];
self.navigationItem.rightBarButtonItem = saveButton;
[saveButton release];

[super viewWillAppear:animated];
}

-(IBAction) cancelAction{
[[self parentViewController] dismissModalViewControllerAnimated:YES];   
  }

  -(IBAction) saveAction{
 NSString *text = [textFieldBeingEdited text];

[textFieldBeingEdited setText:text];
[self setDescription:text];


[[self parentViewController] dismissModalViewControllerAnimated:YES];   
   }

Я не уверен, должен ли я использовать следующий код для сохранения текста в текстовом поле:

- (void)textFieldDidEndEditing:(UITextField *)textField
   {
[self dismissModalViewControllerAnimated:YES];
   }

1 Ответ

0 голосов
/ 17 августа 2011

Я не вижу в вашем коде нигде, что вы устанавливаете текст в UITextField, когда появляется представление. Вы можете добавить некоторый код в ваш метод viewWillAppear, чтобы задать текст при отображении, например:

[textField setText:[self description]];

(похоже, вы храните NSString в переменной описания.)

Кроме того, если это какая-то строка, которая может рассматриваться как пользовательская по умолчанию, вы можете сохранить эту строку там. Я использовал это раньше, и это прекрасно заполняет мой UITextField.

Пример кода:

-(void)viewDidLoad
{
stringValue = [[NSUserDefaults standardUserDefaults] stringForKey:@"string"];
[textField setText:stringValue];
}

-(IBAction)saveAction
{
stringValue = [textField text];
[[NSUserDefaults standardUserDefaults] setObject:stringValue forKey:@"string"];
}
...