新的FuatableViewDataSource-如何使用?Swift 3



刚刚更新到较新的firebaseui pod-一些事情发生了变化,但其中之一是FUI表视图的工作方式。我在较旧的版本上效果很好,但是在下面正在努力 - 缺乏文档/示例。

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

我不明白从哪里调用Indexpath。我需要做一个单独的 NSIndexPath传递吗?我也不真正了解应该在哪里生活的地方 - 以前是FirebaseTableViewDataSource,我将其设置在viewDidLoad中,并且会直接创建单元格等。现在几乎看上去好像需要生活在我的cellForRowAtIndexPath中。有人对此有任何建议吗?

此最新版本的测试使用tableview:bind:method(看起来像是他们制作的Uaithitview类扩展名),我能够使其工作。

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

还要确保您要观察更改的查询,否则表view不会被填充

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

相关内容

  • 没有找到相关文章

最新更新