Новый FUITableViewDataSource — как использовать? Свифт 3

Только что обновился до более новой версии FirebaseUI Pod — изменилось несколько вещей, но одна из самых важных — это то, как работает табличное представление FUI. У меня это хорошо работало в более старой версии, но я борюсь с этим ниже - и отсутствием документации/примеров.

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

Я не понимаю, откуда вызывается indexpath. Нужно ли мне делать отдельный NSIndexPath, чтобы перейти к этому? Я также не очень понимаю, где это должно жить - раньше, когда это было FirebaseTableViewDataSource, я устанавливал его в своем viewDidLoad, и он создавал ячейки и т. Д. Прямо из этого. Почти сейчас он выглядит так, как будто ему нужно жить в моем cellForRowAtIndexPath. Есть ли у кого-нибудь совет по этому поводу?


person stktrc    schedule 28.11.2016    source источник


Ответы (1)


тест для этой последней версии использует 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 не будет заполнен.

self.query?.observe(.value, with: { snapshot in
})
person Keith Kurak    schedule 04.12.2016
comment
У меня не работает, можете подсказать рабочий образец - person mujeeb.omr; 27.09.2017