我在故事板中創建了Tableview。當我嘗試刪除tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath) -> [UITableViewRowAction]
中的單元格時,表格不會在刪除後立即重新加載。它也會在數據庫中成功刪除。 當我關閉視圖並回來時,它將被更新。我哪裏錯了?刪除單元格後,swift tableview無法重新加載
func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath) -> [UITableViewRowAction]? {
let deleteAction = UITableViewRowAction(style: .normal, title: "Löschen") { (rowAction, indexPath) in
let Info: NSDictionary = self.finaltaskValue[indexPath.item] as! NSDictionary
let pwid = Info["pwid"] as! String
self.finaltaskValue.remove(at: indexPath.row)
self.finalTasktableView.beginUpdates()
self.finalTasktableView.deleteRows(at: [indexPath], with: .none)
self.finalTasktableView.endUpdates()
let url = URL(string: "...php")
var request = URLRequest(url: url!)
request.httpMethod = "POST"
let body = "parameters"
request.httpBody = body.data(using: .utf8)
URLSession.shared.dataTask(with: request) { data, response, error in
if error == nil {
DispatchQueue.main.async(execute: {
do{
let json = try JSONSerialization.jsonObject(with: data!, options: []) as? NSDictionary
guard let parseJSON = json else {
print("")
return
}
DispatchQueue.main.async(execute: {
self.finalTasktableView.reloadData()
})
}catch {
//print("Caught an error: \(error)")
DispatchQueue.main.async(execute: {
let message = "Server ist Offline! Wir arbeiten mit hochdruck dran alles zu reparieren"
}
})
}else {
DispatchQueue.main.async(execute: {
let message = error!.localizedDescription
}
}.resume()
}
deleteAction.backgroundColor = colorDarkGreen
return [deleteAction]
}
使用'deleteRows後不要重新加載表視圖(at'此。方法不會更新用戶界面,Btw刪除'begin-/endUpdates()',兩行都沒有效果,派遣'dataTask'到** main **線程的目的是什麼?'dataTask'無論如何都使用自己的線程 – vadian