2017-07-13 17 views
0

我想从MapKit注释(i)按钮切换到UITableViewCell。要做到这一点,我用下面的代码:从MapKit注解中接触到UITableViewCell,并轻轻一点Firebase

func mapView(_ mapView: MKMapView, annotationView view: MKAnnotationView, calloutAccessoryControlTapped control: UIControl) { 

    let annotation = view.annotation as! MKPointAnnotation 
    let uid = annotation.title 
    self.userkey = uid! 
    self.performSegue(withIdentifier: "showDetailFromMap", sender: self) 
} 

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
    if segue.identifier == "showDetailFromMap" { 

     let detailTVC = segue.destination as! MediaDetailTableViewController 

     let value = self.userkey 

     print(value) 

     let ref2 = DatabaseReference.media.reference() 
     let query2 = ref2.queryOrdered(byChild: "uid").queryEqual(toValue: (value)) 

     query2.observe(.childAdded, with: { snapshot in 

      let media = Media(dictionary: snapshot.value as! [String : Any]) 


      print(snapshot.value) 

      self.media1 = media 
     }) 

     detailTVC.media = media1 
     detailTVC.currentUser = currentUser 

    } 
} 

我在为印刷(user.uid)制成的tableViewController的cellForRow print语句,这是抛出一个“意外发现无”的火力点后,打印语句引用没有返回任何内容,所以我认为这是从一个firebase错误开始的。 Firebase查询未运行,因此媒体永远无法获得价值。我之前多次使用这种格式完成了成功的查询,但现在无法正常工作。任何想法为什么?

回答

0

我在map函数中移动了查询,并在完成块中包含了self.performSegue,它现在可以工作。