swift - 如何使用segue firebase发送数据?

标签 swift xcode firebase firebase-realtime-database firebase-storage

我有一个函数可以从我的 firebase 数据库接收所有数据,并且数据显示在表格 View 中,当我单击表格 View 单元格时,它会通过 segue 打开一个新窗口,其中包含更多详细信息。如何通过此从我的 Firebase 发送数据?

func getAllFIRData(){
        var ref: DatabaseReference
        ref = Database.database().reference().child("Receitas")

        ref.observe(.value) { (snapshot) in
            self.receitaList.removeAll()
            if let snapShot = snapshot.children.allObjects as? [DataSnapshot]{
                for snap in snapShot{
                    if let mainDict = snap.value as? [String: AnyObject]{
                       -----------> let nomeReceita = mainDict["nomeReceita"] as? String
                       -----------> let tempoReceita = mainDict["tempoPreparo"] as? String
                       -----------> let porcaoReceita = mainDict["porcaoReceita"] as? String
                       -----------> let ingredientesReceita = mainDict["ingredientesReceita"] as? String
                       -----------> let imageURL = mainDict["imageURL"] as? String

                        self.receitaList.append(ReceitaModel(nome: nomeReceita, tempo: tempoReceita, porcao: porcaoReceita, ingredientes: ingredientesReceita, imageURL: imageURL))
                        self.vrTableViewReceita.reloadData()
                    }
                }
            }
        }
    }



    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        if segue.identifier == "proxTela" {
            let svc = segue.destination as! DetailViewController

            let indexPath:IndexPath! = vrTableViewReceita.indexPathForSelectedRow

            svc.vrNomeReceita = nomeReceita <--------
            svc.vrTempoReceita = tempoReceita <--------
            svc.vrPorcaoReceita = porcaoReceita <--------
            svc.vrIngredientesReceita = ingredientesReceita <--------
            svc.vrImageView = imageURL <--------

        }
    }

最佳答案

修复:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        if segue.identifier == "proxTela" {
            let svc = segue.destination as! DetailViewController

            if let indexPath = self.vrTableViewReceita.indexPathForSelectedRow{
                let segueData : ReceitaModel
                segueData = receitaList[indexPath.row]

                svc.nome = segueData.nome!
                svc.tempo = segueData.tempo!
                svc.porcao = segueData.porcao!
                svc.ingredientes = segueData.ingredientes!
                svc.imagem = segueData.imageURL

            }

        }
    }


    override func viewDidLoad() {
        super.viewDidLoad()

        var ref: DatabaseReference
        ref = Database.database().reference().child("Receitas")

        ref.observe(.value) { (snapshot) in
            self.receitaList.removeAll()
            if let snapShot = snapshot.children.allObjects as? [DataSnapshot]{
                for snap in snapShot{
                    if let mainDict = snap.value as? [String: AnyObject]{
                        let nomeReceita = mainDict["nomeReceita"] as? String
                        let tempoReceita = mainDict["tempoPreparo"] as? String
                        let porcaoReceita = mainDict["porcaoReceita"] as? String
                        let ingredientesReceita = mainDict["ingredientesReceita"] as? String
                        let imageURL = mainDict["imageURL"] as? String

                        self.receitaList.append(ReceitaModel(nome: nomeReceita, tempo: tempoReceita, porcao: porcaoReceita, ingredientes: ingredientesReceita, imageURL: imageURL))
                        self.vrTableViewReceita.reloadData()
                    }
                }
            }
        }

关于swift - 如何使用segue firebase发送数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55909181/

相关文章:

ios - 在 swift 4.2 中发送到实例的无法识别的选择器

ios - Xcode 无法运行测试

firebase - 服务器到服务器身份验证失败 - firebase - 对话流 - google 上的操作 - 用户实体 v2

xcode 6 beta 6 sort() 似乎不像 Swift 文档所说的那样工作

ios - View 转换后如何修复不均匀的边框宽度?

ios - 根据用户选择的指标更改应用程序中使用的权重系统?

ios - 擦洗时跳动的 UISlider - 将 UISlider 与 AVPlayer 一起使用

ios - EMBEDDED_CONTENT_CONTAINS_SWIFT -- pod 安装后出错

android - 当使用 .xml 代替 google_services.json 时,Gradle 构建失败

node.js - Node js 计数器值不会增加