IPad Очистить все поля вернуться к началу - PullRequest
0 голосов
/ 13 января 2011

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

Одна из страниц приложения представляет собой массивную форму, в которую пользователь вводит всю информацию. У меня есть кнопка сброса на этой форме. Эта кнопка просто удаляет все текстовые поля, текстовые представления, снимает флажки и т. Д. И т. Д.

Есть ли чистый способ вернуть вид в состояние, как будто оно совершенно новое (не грязное). Я действительно не хочу проходить через все элементы управления в представлении и возвращать его в ничто.

Есть ли способ стереть весь вид и перезапустить снова?

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

Ответы [ 2 ]

0 голосов
/ 13 января 2011

Я думаю, что самый простой способ сделать это - отменить ваше представление (или разделы, которые вы хотите сбросить) и воссоздать их. Это может быть так просто, как:

//assuming you have a nib file containing some custom FormView class with your current view controller as its owner and the FormView instance in the nib bound to a 'formView' property on the controller
[self.formView removeFromSuperView];
[[NSBundle mainBundle] loadNibNamed:@"FormView" owner:self options:nil];
[self.view addSubView:self.formView];
//keep a reference to the old formView first and animate the transition as you like

Более сложным, но, возможно, стоящим может быть использование объектов просмотра с помощью KVO для отслеживания изменений в каком-либо объекте модели, представленном как свойство через делегата или в суперпредставлении. Это удобно, если вы хотите, чтобы представление могло автоматически обновляться в ответ на изменения модели, поступающие из других частей представления или из какого-либо внешнего источника, такого как сетевые обновления. «Сброс» может быть таким же простым, как замена значения свойства, наблюдаемого представлениями, новым экземпляром вашей модели.

0 голосов
/ 13 января 2011

Я думаю, что самый простой способ сделать это -

-(IBAction) reset
{
      YourView *obj=[[YourView alloc] initWithNibName:@"YourView" bundle:[NSBundle mainBundle]];
      [self presentModalViewController:obj animated:NO];
      [obj release];
}
...