2016-11-28 21 views
5

Właśnie zaktualizowany do nowszej wersji FirebaseUI Pod - kilka rzeczy się zmieniło, ale jednym z dużych jest sposób, w jaki działa widok tabeli FUI. Miałem to działa dobrze na starszej wersji, ale walczę z tym poniżej - i brak dokumentacji/przykłady.Nowy FUITableViewDataSource - jak korzystać? Swift 3

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

Nie rozumiem, skąd jest wywoływana ścieżka indeksu. Czy muszę wprowadzić oddzielne NSIndexPath, aby przejść do tego? Ja też nie bardzo rozumiem, gdzie to ma żyć - wcześniej, z nim był FirebaseTableViewDataSource, ustawiłbym go w moim viewDidLoad, i to by stworzyć komórki itp. Prosto z tego. Wygląda prawie tak, jakby musiał żyć w moim cellForRowAtIndexPath. Czy ktoś ma jakieś rady na ten temat?

Odpowiedz

5

Do najnowszej wersji test używana jest metoda tableView: bind: (wydaje się, że zostały utworzone przez rozszerzenie klasy UITableView) i udało mi się ją uruchomić.

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 
    }) 
} 

także upewnić się, że obserwując zapytanie do zmian albo tableview nie zostanie wypełniona

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

To nie działa na mnie, można wskazać mi próbki roboczej – omujeebr