【发布时间】:2017-12-16 23:48:50
【问题描述】:
我正在使用 Firebase 在 Swift 中实现一个问答程序。我想在我的 tableViewCell 中有一个赞按钮。但是,我遇到了问题,因为帖子的数据在 tableView 类中,我可以在 tableViewCell 类中的like按钮上进行更改。我需要在这两者之间进行数据传输。谁能帮我解决这个问题?
如果它可以帮助您理解我的问题,请在我的表格视图中编写代码:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let answerCell = tableView.dequeueReusableCell(withIdentifier: "AnswerCell") as! AnswerCell
let answer = answers[indexPath.row]
answerCell.answerText.text = answer.answerText
answerCell.username.text = "~ \(answer.username)"
answerCell.numberOfLikes.text = "\(answer.numberOflikes) liked this answer."
answerCell.answerText.numberOfLines = 0
return answerCell
}
我想在我的表格视图单元格中有这样的代码。但是,我无法访问答案对象的数据。
@IBAction func likeButtonClicked(_ sender: UIButton) {
ref = Database.database().reference()
ref.child("answerLikes").child((answer.id).observeSingleEvent(of: .value, with: {
(snapshot) in
if let _ = snapshot.value as? NSNull {
sender.setImage(UIImage(named: "filledHeart.png"), for: .normal)
} else {
answerLikes = [Auth.auth().currentUser?.uid : true]
ref.child("answerLikes").child(answer.id).updateChildValues(answerLikes)
sender.setImage(UIImage(named: "emptyHeart.png"), for: .normal)
}
})
}
【问题讨论】:
-
方法
likeButtonClicked放在哪里? -
它在 AnswerCell 中。它应该在表格视图控制器中吗?感谢您的回复。
标签: ios swift firebase firebase-realtime-database firebase-authentication