我正在创建一个内部ipad应用程序,允许我们的员工填写他们刚刚执行的网站访问的详细信息。
应用程序中的一个页面是一个庞大的表单,用户输入所有信息。我在这张表格上有一个重置按钮。此按钮将清除所有文本字段,文本视图,取消选中复选框等等。
是否有一种干净的方法可以将视图重置为状态,就好像它是全新的(非脏)。我真的不想通过视图上的每个控件并将其设置为空。
有没有办法擦除整个视图并重新启动?
提前致谢
答案 0 :(得分:0)
我认为这样做的简单方法是,
-(IBAction) reset
{
YourView *obj=[[YourView alloc] initWithNibName:@"YourView" bundle:[NSBundle mainBundle]];
[self presentModalViewController:obj animated:NO];
[obj release];
}
答案 1 :(得分:0)
我认为最简单的方法是丢弃您的视图(或您要重置的部分)并重新创建它们。这可能很简单:
//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来监视通过委托或超级视图作为属性公开的某些模型对象的更改。如果您希望视图能够自动更新自身以响应来自视图其他部分的模型更改或某些外部源(如网络更新),那么这很方便。然后,“重置”可以像使用模型的新实例替换视图正在观察的属性值一样简单。