【发布时间】:2013-07-11 10:33:08
【问题描述】:
是否可以使用 UITableView 将值输入到数据库的字段中。
例如,如果我有一个 UITableView 指向数据库中的一个字段,并且如果我想在数据库中输入一个新条目 - 点击 UITableView 单元格,然后允许键盘输入最终结束的单元格成为数据库中的新记录??
【问题讨论】:
是否可以使用 UITableView 将值输入到数据库的字段中。
例如,如果我有一个 UITableView 指向数据库中的一个字段,并且如果我想在数据库中输入一个新条目 - 点击 UITableView 单元格,然后允许键盘输入最终结束的单元格成为数据库中的新记录??
【问题讨论】:
这是可能的,但如果某事是可能的并不意味着你应该这样做。
你可能会问为什么?
好吧!您正在尝试将数据从视图直接输入到数据库,这是一种非常糟糕的做法。它不好的原因有很多,主要是效率和安全原因。 您应该考虑使用MVC pattern。
既然它完全可能,我将解释如何做到这一点的想法,并以具有真实代码示例的链接结束。
在tableView:cellForRowAtIndexPath:
添加带有标签的TextField(以在将来获取引用)并将其添加到单元格的contentView 并隐藏它。
现在在tableView:didSelectRowAtIndexPath: 中将单元格editing 属性设置为YES。
然后,在tableView:willBeginEditingRowAtIndexPath:
使用 viewWithTag: 方法获取对 contentview 中文本字段的引用并隐藏 textLabela 并取消隐藏文本字段。
在文本字段的委托textFieldDidEndEditing: 中,将单元格的编辑属性设为否(是的,您需要保留引用)取消隐藏文本标签并隐藏文本字段。
在tableView:didEndEditingRowAtIndexPath: 中写入将更改提交到您的数据库的方法。
下面是链接列表,这些链接将为您提供代码示例:
Having a UITextField in a UITableViewCell
Accessing UITextField in a custom UITableViewCell
您的要求没有示例,因为它的做事方式有点糟糕。
【讨论】:
是的,有可能……
您可以使用委托方法将数据从单元格文本字段中获取到父视图控制器,然后将数据保存在数据库中。
【讨论】: