问题描述
||
我的应用程序具有3个选项卡,并且可以在其他两个选项卡中更改在第三个选项卡中填充tableView的数组。当我切换到第三个选项卡时,我需要更新tableView。我知道该怎么做,唯一的问题是表格视图是一个检查列表。
当我在第三个选项卡中的某些行上打勾时,切换到另一个选项卡并更新第三个选项卡的数组,当我想切换回第三个选项卡时,表将使用新数据进行更新,但复选标记已从中删除桌子。
有没有一种方法可以在不删除复选标记的情况下更新表?
解决方法
您如何确定现在是否检查项目?听起来您可能没有存储对象的已检查状态,而只是将单元格上的“ 0”设置为“ 1”。如果是这样,则需要向存储在数组中的对象添加一个布尔属性,该属性将表示当前是否选中该项目。
一旦存储了此值,就可以在配置表格视图单元格时使用它(在
tableView: cellForRowAtIndexPath:
或configureCell: atIndexPath:
中或在其他任何要进行单元格配置的地方)以为该单元格设置适当的ѭ0.。将其放在单元格配置中将使表格视图重新加载tableview时正确检查项目。
,当您点击第三个按钮或创建新的tableView时是否要重新加载tableview。
如果要重新加载,请使用temp变量存储选中标记的单元格的数据。每次重新加载时,将温度数据与单元格数据进行比较。
,当您将对象添加到数组时,可以在其中添加字典对象,并添加一个额外的对象@ \“ FALSE \”,@ \“ checkState \”。最初,它将对所有对象都为FALSE,因此在第三个选项卡中为表格创建单元格时,请检查数组中的键。并且,当您选择一个单元格时,然后访问数组中该indexPath.row的字典对象,并将键@ \“ checkState \”的值更新为TRUE。