iOS + Firebase-将数据从视图控制器发送到详细信息视图控制器

时间:2018-11-05 10:40:24

标签: ios swift firebase

我有一个ViewController,其中的数据列表是从RealtimeDatabase获取并显示在UITableView中的。单击帖子后,我希望将ViewController中的数据(例如标题,描述和图像)转发到DetailView中,即:PostController.Swift,在这里我可以进一步从{{ 1}}显示在RealtimeDatabase

我尝试使用didSelectRowAt,但是无法在PostController中获取和显示数据,我目前也在尝试使用prepare,但是卡在了同一位置。

这里是PostController.Swift

ViewController.Swift

2 个答案:

答案 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
}