我正在使用“接受”滑动操作。当我单击滑动按钮时,一切在Web服务器上都很完美,但tableView
没有得到更新。实际上我在tableView.reloadData()
函数中使用getOnay
,但它不起作用。
有趣的是,当我按两次滑动操作按钮时,会删除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]
}
答案 0 :(得分:0)
在您拨打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")
答案 1 :(得分:0)
您是否尝试在主队列中重新加载数据()?
DispatchQueue.main.async {
tableView.reloadData()
}