在Apple的“设置”样式中编辑模型

时间:2010-10-24 13:41:51

标签: iphone objective-c model settings editing

我想为iPhone应用程序实现一些编辑机制,即我希望用户能够编辑我的模型的实例。该模型包含两种类型的数据:第一种是NSString,用户可以在其中编写任何他喜欢的内容。第二个是选择,他可以从一些给定的值中选择一个。

我的目标是调整Apple在其“设置”应用中使用的方式。例如,在“设置”应用程序中,Apple提供了一个模态视图,用于输入邮件帐户的信息。用户必须输入名称,地址,密码等字符串,并且必须从SMTP服务器的身份验证方法中选择四个选项之一。

我是否必须自己实施这一切?只需使用UITableViewCellStyleValue2单元格在表格视图中显示数据并启用编辑,我只能添加或删除条目。但是,这显然不是我想要的。

如果我确实必须自己实施,那么最佳做法是什么?使用Label和UITextField创建自定义单元格没有问题,但我总共需要大约25个单元格。我看到如果一个单元格正在移出屏幕,就没有机会收到通知,那么如何最好地保存用户输入的数据呢?

我目前的想法是将自定义单元格中的UITextField“绑定”到我模型中的关键路径。即我提供了更新到我的自定义单元格的关键路径,在我的控制器上,我在收到[model setValue:cell.textField.text forKeyPath:cell.keyPath];时致电UITextFieldTextDidChangeNotification。那么为每个按键更新模型是个好主意吗?我怀疑这表现不错。对于多选单元格,我在模态视图中添加了一个UINavigationController。

有没有更好的想法?

1 个答案:

答案 0 :(得分:1)

我最终解决了这个问题。

我提供了一个导航控制器,它显示了一个表格视图,使用带有标签和文本字段的自定义单元格显示我的模型。所有textFields的委托都是UITableViewController,它实现UITextFieldDelegate方法-textFieldDidBeginEditing:-textFieldDidEndEditing。我为自定义单元格提供了一个标记,因此我可以设置模型的相应属性(SQLite数据库条目)。

我在iPhone 3G上尝试过它并且表现相当不错。

非常感谢!