2016-11-28 14 views
5

Yeni FirebaseUI Pod ile güncellendi - birkaç şey değişti, ancak büyük olanlardan biri FUI Tablosu Görünümü'nün çalışma şeklidir. Daha eski bir versiyonda iyi çalışmıştım ama bununla mücadele ediyorum - ve belgelerin/örneklerin eksikliği.Yeni FUITableViewDataSource - nasıl kullanılır? Swift 3

self.dataSource = FUITableViewDataSource(query: <#T##FIRDatabaseQuery#>, view: <#T##UITableView#>, populateCell: <#T##(UITableView, IndexPath, FIRDataSnapshot) -> UITableViewCell#>) 

Dizin yolu arandığını anlamıyorum. Buna geçmek için ayrı bir NSIndexPath yapmam gerekir mi? Ayrıca bunun nerede yaşaması gerektiğini gerçekten anlamıyorum - daha önce, FirebaseTableViewDataSource ile, viewDidLoad'umu ayarlayabilirdim, ve bu hücrelerden vb. Neredeyse şimdi benim cellForRowAtIndexPath içinde yaşamak gerekiyormuş gibi görünüyor. Bunun hakkında herhangi bir tavsiyesi var mı?

cevap

5

Bu en son sürüm için test bir tableView: bind: method (yaptıkları bir UITableView sınıf uzantısı gibi görünüyor) kullanır ve çalışmayı başarabildim. Ayrıca

override func viewWillAppear(_ animated: Bool) { 
    super.viewWillAppear(animated) 

    let firebaseRef = FIRDatabase.database().reference().child(/*insert path for list here*/) 

    let query = firebaseRef.queryOrderedByKey() /*or a more sophisticated query of your choice*/ 

    let dataSource = self.tableView.bind(to: query, populateCell: { (tableView: UITableView, indexPath: IndexPath, snapshot: FIRDataSnapshot) -> UITableViewCell in 

     let cell = tableView.dequeueReusableCell(withIdentifier: "cellIdentifier", for: indexPath) 

     let value = snapshot.value as! NSDictionary 

     let someProp = value["someProp"] as? String ?? "" 

     cell.textLabel?.text = someProp 

     return cell 
    }) 
} 

Eğer değişiklikler için sorgu gözlemleyerek veya başka tableView doldurulan değildir emin olmak

Benim için çalışmıyor
+0

, çalışan bir örnek beni işaret edebilir

self.query?.observe(.value, with: { snapshot in }) 
omujeebr