1

我有UITableView各种细胞的习惯。我通过为每个部分创建一个UITableViewCell. 你可以在这里看到我的表格。如您所见,我有文本字段、文本视图和开关。在我的表单底部(不在屏幕截图上)我有一个保存按钮。

我制作了一个Person具有以下属性的类。

  1. 登录
  2. 密码
  3. 方法(这是一个数组)
  4. 电话
  5. 评论

在我的中,我从我的 Person 对象中viewDidLoad加载了数据。tableView但是现在我希望当用户更改某些字段并按下保存按钮时,所有字段都保存到 people 对象中。

我遇到的问题

  • 例如,当我输入一个新的登录名并向下滚动时,该值又更改为原始值。
  • 我现在不知道如何将数据保存在我的人员对象中

有人知道我该怎么做吗?亲切的问候

在此处输入图像描述

4

2 回答 2

2

UITableViewCell 使用一种缓存机制,当它从屏幕上滚动并重新打开时,它的内容会被重新加载。这意味着,通过将单元格滚动到屏幕边界之外,然后将其滚动回屏幕,您正在重绘单元格。

解决方案是在表视图控制器中使用数据源:

  • 使用数据源在您的方法中加载应该在单元格(或单元格的子视图,例如 UITextField)中显示的值tableView:cellForRowAtIndexPath:
  • 当单元格的内容(或 UITextField 等子视图的内容)更新时,将单元格的内容保存到数据源。

希望有帮助!

于 2012-12-14T15:20:07.753 回答
0

这是因为您没有更新从中填充单元格的数组,现在当您滚动 tableView,然后再次向上滚动时,您的单元格将再次创建,这些单元格从仍然具有旧值的数组中获取文本字段的文本。尝试更新您在文本字段的 didEndEditing 委托方法中填充表格视图的数组。

于 2012-12-14T15:22:31.220 回答