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