我目前在ViewController中有一個名爲MainViewController
的UITableView,它從Firebase數據庫加載所有內容。我還有另一個名爲DetailsViewController
的ViewController,它可以加載通過segue點擊的任何單元格的數據。我想要做的是創建另一個名爲CommentViewController
的ViewController,並從之前點擊過的同一單元格中加載信息(Segue來自DetailsViewController
)。從視圖控制器發送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中使用公共變量,並在detailsView控制器中爲preparesegue賦予它的值。 – sschunara