我有一个ViewController,其中的数据列表是从RealtimeDatabase
获取并显示在UITableView
中的。单击帖子后,我希望将ViewController
中的数据(例如标题,描述和图像)转发到DetailView中,即:PostController.Swift
,在这里我可以进一步从{{ 1}}显示在RealtimeDatabase
我尝试使用didSelectRowAt,但是无法在PostController中获取和显示数据,我目前也在尝试使用prepare,但是卡在了同一位置。
这里是PostController.Swift
:
ViewController.Swift
答案 0 :(得分:0)
尝试这个。
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let postsInfo = posts[indexPath.row]
print(postsInfo)
performSegueWithIdentifier("PostDetailSegue", sender: self)
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "PostDetailSegue" {
if let indexPaths = posts[indexPath.row]{
//add parmaters which passed to another viewcontroller
}
}
}
答案 1 :(得分:0)
您需要在Post
中存储对DetailViewController
的引用。
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "PostDetailSegue" {
let detailViewController = segue.destinationViewController as! DetailViewController
let indexPath = tableView.indexPathForSelectedRow
let post = posts[indexPath.row]
detailViewController.setPost(post)
}
}
在您的DetailViewController中:
func detailViewController.setPost(_ post: Post) {
// Store the post and fetch other data as necessary
self.post = post
}