TableViewController不更新单元格

时间:2017-02-08 23:51:33

标签: ios swift uitableview

此应用程序允许Rider请求乘坐和司机接受请求。在这张表中,是骑手(2)要求的游乐设施。

无法更新tableviewcells,任何帮助将不胜感激

.hidden {
  display: none;
}
li {
  list-style-type: none;
}

**表格视图的屏幕截图未在第一个单元格后更新**

enter image description here

2 个答案:

答案 0 :(得分:1)

确保在with parameter closure的主队列中重新加载tableview。

ref.child("drivers").child("RideRequests").observe(FIRDataEventType.value, with: { snapshot in
    self.rideRequests.removeAll()
    for item in snapshot.children{
        self.rideRequests.append(item as! FIRDataSnapshot)
    }
    self.rideRequests.reverse()
    DispatchQueue.main.async (execute: { () -> Void in
        self.tableView.reloadData()
    })
})

答案 1 :(得分:0)

Geocoder的回调是异步的,你不能通过更新回调中的标签值来简单地更改表格单元格中的值 - 你必须通知表格视图重新加载单元格才能更新它。

因此,您需要从tableView:cellForRowAt中提取GeoCoder查找,并将它们移动到viewDidLoad或viewWillAppear中的循环中。最终值应构成您模型的一部分。

在GeoCoder的回调中,您将告诉表视图重新加载每个单独的单元调用tableView.reloadRows并使用单个值数组。