所以基本上,我使用didselectrowAt来增加表示观看次数的整数,然后使用显示观看次数的标签来查找内容,但是此值未正确更新,因为第一次单击不会增加第二观看次数控制器的视图计数标签,回到第一个视图控制器后,视图计数也不会更新,但是从第二次单击开始,didselectrow可以正常工作。
此外,我必须添加reloaddata才能消失,使其能够正常工作,有人可以帮忙吗?
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
numberOfViews = questionArray[indexPath.row].viewcount
id = questionArray[indexPath.row].id
DispatchQueue.main.async {
self.updateViewCount(qid:self.id, question: self.questionArray[indexPath.row])
}
//performSegue
self.performSegue(withIdentifier: "questionDetailSegue", sender: self)
tableView.deselectRow(at: indexPath, animated: true)
}
func updateViewCount(qid:String, question: Question){
let questionDB = Database.database().reference().child("Questions").child(qid).child("Viewcount")
questionDB.observeSingleEvent(of: .value) { (snapshot) in
if let viewerValue = snapshot.value as? String{
var viewerIntValue = Int(viewerValue)
viewerIntValue! += 1
questionDB.setValue(String(viewerIntValue!))
question.viewcount = String(viewerIntValue!)
}
}
}
override func viewWillDisappear(_ animated: Bool) {
questionTableView.reloadData()
}