我有两个 TableView ,我可以在按下按钮时将数据从 table1 移动到 table2。
当单元格被选中时,会出现一个复选标记,然后按下按钮,会发生以下情况:
- 从数组数据源中移除对象
- 调用
deleteRowsAtIndexPaths
我的问题是,当数据传输到 table2 时,数据在 table2 单元格上仍然有复选标记。我想重置它,但在每个地方我都尝试迭代对象数组并将复选标记设置为 false,当调用 deleteRowsAtIndexPaths
时会发生以下错误:
Assertion failure in -[UITableView _endCellAnimationsWithContext:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit_Sim/UIKit-3491.2.5/UITableView.m:1717
有人知道为什么会这样吗?
最佳答案
在通知 View 任何更改之前更新数据源至关重要。 View 方法假定您的数据源包含当前正确的数据。否则, TableView 可能会从您的数据源接收到错误的项目集,或者请求不存在的项目并导致您的应用程序崩溃。
尝试按以下顺序进行:
- 将表 A 中的对象复制到新项目中(属性未选中)
- 从表A的数组数据源中移除对象
- 为表 A 调用 deleteRowsAtIndexPaths
- 将步骤1复制的对象插入表B的数据源
- 重新加载表B
还提供将项目插入表 B 的代码可能会有所帮助。
祝你好运。
关于ios - 调用 deleteRowsAtIndexPaths 时 UITableView 断言失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31903484/