2016-11-28 6 views
5

新しいFirebaseUI Podにちょうど更新されました - いくつかの変更がありましたが、大きなものの1つはFUI Table Viewが動作する方法です。以前のバージョンではうまく動作しましたが、これには苦労しています。ドキュメンテーション/サンプルが不足しています。新しいFUITableViewDataSource - 使い方は? Swift 3

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

インデックスパスがどこから呼び出されているのか分かりません。私はそれに入るために別々のNSIndexPathを作る必要がありますか?私はまた、これが生きるべき場所を実際に理解していません。以前はFirebaseTableViewDataSourceでしたが、私はviewDidLoadに設定し、そこから直接細胞等を作りました。それは私のcellForRowAtIndexPathに住んでいる必要があるかのように見えます。誰にもこれに関するアドバイスはありますか?

答えて

5

この最新バージョンのtestはtableView:bind:メソッドを使用しています(UITableViewクラスの拡張機能のようです)、これを動作させることができました。また

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

あなたは、変更のためのクエリを観察しているか、他のtableViewが読み込まれますしないことを確認してください

それは私のために働いていない
+0

は、あなたが作業サンプルに私を指すことができます

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

関連する問題