簡體   English   中英

Swift 3:TableView刷新不適用於行操作

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM