我希望我的UITableView能够响应Firebase

时间:2017-01-30 00:59:55

标签: ios json uitableview firebase firebase-realtime-database

我有UITableViewCells与社交网络应用的标签相似/不同。标签具有UITapGestureRecognizer方法,可以执行Like和不同功能的操作。虽然它在应用程序中表现良好。如果Firebase数据库中的任何更改未通知应用程序。这是cellForRowAtIndexPath的片段:

if (cell.likeLabel.text == "Like") {
      let gestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(FeedTableViewController.likeTapped))
      cell.likeLabel.addGestureRecognizer(gestureRecognizer)
}
else if (cell.likeLabel.text == "Unlike") {
      let gestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(FeedTableViewController.unlikeTapped))
      cell.likeLabel.addGestureRecognizer(gestureRecognizer)
}

我希望它能够根据喜欢和不喜欢来增加和减少数据库中喜欢的数量。当应用程序从数据库加载JSON时,它有特定数量的喜欢显示(假设5),但是一旦加载,我更改数据库中的数字(可能是10),当点击类似标签时,它会增加到6并在不受欢迎时递减到5,而它应该增加到11并递减到9.这是UITabGestureRecognizer方法之一的片段:

func likeTapped(sender: UITapGestureRecognizer){
    // Get references
    guard let label = sender.view as? UILabel else { print("Error not a label"); return }
    let position = sender.locationInView(self.tableView)
    guard let indexPath = self.tableView.indexPathForRowAtPoint(position) else { print("Error label not in tableView"); return }

    // Notify TableView of pending updates
    self.tableView.beginUpdates()
    defer { self.tableView.endUpdates() }

    // Reference to numberOfLikes
    var numberOfLikes = self.tableViewModel[indexPath.row].numberOfLikes

    numberOfLikes += 1
    self.tableViewModel[indexPath.row].numberOfLikes = numberOfLikes

    // Update Firebase
}

0 个答案:

没有答案