поэтому в основном я использую 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()
}