【问题标题】:Editing a model in Apple's Settings style以 Apple 的设置样式编辑模型
【发布时间】:2010-10-24 13:41:51
【问题描述】:

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

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

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

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

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

有没有更好的想法?

【问题讨论】:

    标签: iphone objective-c model settings editing


    【解决方案1】:

    我最终按照我上面的建议解决了这个问题。

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

    我在 iPhone 3G 上尝试过,它的性能相当不错。

    还是谢谢!

    【讨论】:

      猜你喜欢
      • 2015-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-09
      • 2015-07-04
      相关资源
      最近更新 更多