2016-11-28 28 views
5

Chỉ cần cập nhật lên Pod FirebaseUI mới hơn - một vài thứ đã thay đổi nhưng một trong những thứ lớn nhất là cách mà Chế độ xem bảng FUI hoạt động. Tôi đã có nó hoạt động tốt trên một phiên bản cũ nhưng đang đấu tranh với điều này dưới đây - và thiếu tài liệu/ví dụ.FUITableViewDataSource mới - cách sử dụng? Swift 3

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

Tôi không hiểu vị trí của đường dẫn chỉ mục. Tôi có cần phải tách riêng NSIndexPath để chuyển sang điều đó không? Tôi cũng không thực sự hiểu nơi này là nghĩa vụ phải sống - trước đây, với nó là FirebaseTableViewDataSource, tôi sẽ đặt nó trong viewDidLoad của tôi, và nó sẽ tạo ra các tế bào vv trực tiếp từ đó. Nó gần như bây giờ trông như thể nó cần phải sống trong cellForRowAtIndexPath của tôi. Có ai có lời khuyên nào về điều này không?

Trả lời

5

test cho phiên bản mới nhất này sử dụng phương thức tableView: bind: (có vẻ như phần mở rộng của lớp UITableView mà họ đã tạo) và tôi có thể làm cho nó hoạt động.

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

Ngoài ra hãy chắc chắn rằng bạn đang quan sát truy vấn của bạn thay đổi hoặc người nào khác tableView sẽ không được dân cư

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

Nó không làm việc cho tôi, bạn có thể chỉ cho tôi một mẫu làm việc – omujeebr

Các vấn đề liên quan