iOS Firebase更新整数值且UI无法正常工作

时间:2018-12-04 05:29:43

标签: ios swift firebase firebase-realtime-database

所以基本上,我使用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()
}

0 个答案:

没有答案