現在、FireboxデータベースからすべてのコンテンツをロードするMainViewController
というViewController内にUITableViewがあります。また、別のViewControllerという名前のDetailsViewController
があります。これは、セグを介してクリックされたセルからデータをロードします。私がやろうとしているのは、CommentViewController
という名前の別のViewControllerを作成し、前にクリックした同じセルから情報をロードすることです(SegueはDetailsViewController
から来ます)。View ControllerからView ControllerにFirebaseデータを送信
これは私が現在、私のストーリーボードのセットアップを持っているかである:これは私は現在、私はほとんどの最も簡単にこのデータを渡すことができますどのようにMainViewController
からDetailsViewController
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
performSegue(withIdentifier: "showDetails", sender: self)
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "showDetails" {
if let indexPath = self.postsTableView.indexPathForSelectedRow {
let post = posts[indexPath.row] as! [String: AnyObject]
let postDetails = post["postID"] as? String
let controller = segue.destination as! DetailsViewController
controller.postDetails = postDetails
}
}
}
// DetailsViewController
var postDetails: String?
override func viewDidLoad() {
super.viewDidLoad()
FIRDatabase.database().reference().child("posts").child(postDetails!).observeSingleEvent(of: .value, with: { (snapshot) in
if let dictionary = snapshot.value as? [String: AnyObject] {
self.title = dictionary["title"] as? String
self.priceLabel.text = dictionary["price"] as? String
self.ratingLabel.text = dictionary["rating"] as? String
self.usernameLabel.text = dictionary["username"] as? String
self.detailsTextView.text = dictionary["description"] as? String
}
})
}
と最も簡単な方法は?
私は混乱して申し訳ありませんが、すでにDetailsViewControllerのデータを渡していますが、CommentsViewController – gabe
にデータを渡す方法を知りたいと思います。 commentViewControllerでpublic変数を取得し、detailsViewコントローラのpreparesegueにその値を渡します。 – sschunara