如何使用segue firebase发送数据?

问题描述 投票:0回答:1

我有一个函数从我的firebase数据库接收所有数据,并且数据显示在tableview中,当我点击tableview单元格时,它通过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 <--------

        }
    }
swift xcode firebase firebase-realtime-database firebase-storage
1个回答
0
投票

固定:

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()
                    }
                }
            }
        }
© www.soinside.com 2019 - 2024. All rights reserved.