注意:我已经阅读了类似的问题,其中没有一个专门回答了这个问题。我一直试图理解为什么我的UITableView在数据片段添加到列表时没有刷新。我检查了(通过print()语句)并且每当我调用func refreshUI() {
dispatch_async(dispatch_get_main_queue(),{
self.tableView.reloadData()
});
}
时,它都会检查要使用的数组的长度,并且不执行任何操作。我甚至尝试使用这个功能:
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {}
我在另一个回答的问题上找到了,但这并没有解决问题。问题是
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {}
永远不会被调用,即使
self.firebase.observeEventType(.Value, withBlock: { (snap) in
print("\n\n\n\n\n\nSnap Recieved from Firebase: \n\n\(snap)\n\n")
var count = Int(self.names.count)
var childCount = Int(snap.childrenCount)
print(childCount)
print(self.names)
print("names count: \(self.names.count)")
self.names.removeAll()
for child in snap.children {
let c = child as! AnyObject
self.names.append(c.key!)
}
self.refreshUI()
})
应该返回一个非零数字。
将新信息添加到列表并应显示的代码:
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
print("For tableView size, returning \(self.names.count)")
return self.names.count
}
NumberOfRows方法:
{{1}}