Ios Swift 3:TableView刷新不';不能使用行操作
我正在使用“接受”刷操作。当我点击滑动按钮时,一切都在web服务器上完美运行,但是Ios Swift 3:TableView刷新不';不能使用行操作,ios,swift,uitableview,reloaddata,Ios,Swift,Uitableview,Reloaddata,我正在使用“接受”刷操作。当我点击滑动按钮时,一切都在web服务器上完美运行,但是tableView没有得到更新。实际上,我在getOnay函数中使用了tableView.reloadData(),但它不起作用 有趣的是,当我按两次滑动操作按钮时,它会删除表视图上的行 这是我的密码: override func tableView(_ tableView: UITableView, editActionsForRowAt: IndexPath) -> [UITableViewRowActi
tableView
没有得到更新。实际上,我在getOnay
函数中使用了tableView.reloadData()
,但它不起作用
有趣的是,当我按两次滑动操作按钮时,它会删除表视图上的行
这是我的密码:
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]
}
调用getOnay
后,调用函数从数组中删除元素(self.onayArray.remove(at:index.row)
),您可以说调用tableView.reloadData()
)。因此,在从数组中删除元素之前,需要重新加载数据。第二次执行刷卡操作时,将调用
reloadData,最后更新上一次操作的效果
因此,更改getOnay
和remove(位于:index.row)
函数的顺序:
self.onayArray.remove(at: index.row)
self.getOnay(id: taskInfo.id, status: "okay")
调用
getOnay
后,调用函数从数组中删除元素(self.onayArray.remove(at:index.row)
),您可以说调用tableView.reloadData()
)。因此,在从数组中删除元素之前,需要重新加载数据。第二次执行刷卡操作时,将调用reloadData,最后更新上一次操作的效果
因此,更改getOnay
和remove(位于:index.row)
函数的顺序:
self.onayArray.remove(at: index.row)
self.getOnay(id: taskInfo.id, status: "okay")
您是否尝试在主队列中重新加载data()
DispatchQueue.main.async {
tableView.reloadData()
}
您是否尝试在主队列中重新加载data()
DispatchQueue.main.async {
tableView.reloadData()
}
它不起作用。我想这不是关于主队列的问题,它不起作用。我认为这与主队列无关。你能分享你的loadOnaylar方法代码吗?基本上它只是一个josn post代码。我可以共享loadOnaylar,但问题是,当我运行调试时,这个函数在行操作onay var中根本不起作用。这怎么可能?你能共享你的loadOnaylar方法代码吗?基本上它只是一个josn post代码。我可以共享loadOnaylar,但问题是,当我运行调试时,这个函数在onay var的行操作中根本不起作用。这怎么可能?它在onay var中不起作用,我不知道为什么。@winnervswinner你的
getOnay(…)
函数做什么?这个函数中有get json方法。在检测到get方法后,它会重新加载tableview。@winnervswinner您是否实现了canEditRowAt
tableview委托方法(对于您想要执行刷卡操作的行,需要返回true
false)?它在onay变量中不起作用,我不知道为什么。@winnervswinner您的getOnay做了什么(…)
function do?此函数中有get-json方法。在检测到get方法后,它会重新加载tableview。@winnervswinner您是否实现了canEditRowAt
tableview委托方法(对于要执行刷卡操作的行,需要返回true
/false
)?