我有一个函数,该函数从firebase数据库接收所有数据,并且数据显示在表视图中,当我单击表视图单元格时,它将通过segue打开一个新窗口,其中包含更多详细信息。我该如何通过Firebase从我的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 <--------
}
}
答案 0 :(得分: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()
}
}
}
}