![](/img/trans.png)
[英]Delete NSManagedObject and later refresh tableView doesn't work correctly
[英]Swift 3 : TableView refresh doesn't work with row action
我正在使用“接受”滑动动作。 当我单击“滑动”按钮时,所有内容都可以在Web服务器上正常运行,但是tableView
不会更新。 实际上,我在getOnay
函数中使用tableView.reloadData()
,但是它不起作用。
有趣的是,当我按下两次滑动动作按钮时,它将删除tableView
上的行。
这是我的代码:
override func tableView(_ tableView: UITableView, editActionsForRowAt: IndexPath) -> [UITableViewRowAction]? {
let onay = UITableViewRowAction(style: .normal, title: "Accept") { action, index in
let ip = editActionsForRowAt.row
let taskInfo:Task = self.onayArray[ip]
self.getOnay(id: taskInfo.id, status: "okay")
self.onayArray.remove(at: index.row)
self.loadOnaylar(userID: self.onayCode.userId, code: self.onayCode.systemCode)
}
onay.backgroundColor = .green
return [onay]
}
您调用函数从您的数组中删除元素( self.onayArray.remove(at: index.row)
之后您调用getOnay
你说电话tableView.reloadData()
因此,在从数组中删除元素之前,您要重新加载数据。 当您第二次执行滑动操作时,将调用reloadData
,最终更新前一个操作的效果。
因此,更改getOnay
的顺序并remove(at: index.row)
函数:
self.onayArray.remove(at: index.row)
self.getOnay(id: taskInfo.id, status: "okay")
您是否尝试在主队列中使用reloadData()?
DispatchQueue.main.async {
tableView.reloadData()
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.