2016-11-28 10 views
5

बस नए फायरबेस यूआई पॉड में अपडेट किया गया - कुछ चीजें बदली हैं लेकिन बड़ी संख्या में से एक यह है कि एफयूआई टेबल व्यू काम करता है। मैंने इसे पुराने संस्करण पर अच्छी तरह से काम किया था लेकिन मैं इसके साथ संघर्ष कर रहा हूं - और दस्तावेज़ीकरण/उदाहरणों की कमी।नया FUITableViewDataSource - उपयोग कैसे करें? स्विफ्ट 3

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

मुझे समझ में नहीं आता कि इंडेक्सपाथ कहां से बुलाया जा रहा है। क्या मुझे उसमें जाने के लिए एक अलग NSIndexPath बनाने की आवश्यकता है? मैं वास्तव में यह नहीं समझता कि यह कहां रहने वाला है - पहले, इसके साथ FirebaseTableViewDataSource था, मैं इसे अपने viewDidLoad में सेट कर दूंगा, और यह सीधे से कोशिकाओं आदि बना देगा। यह लगभग अब लगता है कि इसे मेरे cellForRowAtIndexPath में रहने की जरूरत है। क्या किसी को इस पर कोई सलाह है?

उत्तर

5

test इस नवीनतम संस्करण के लिए एक तालिका दृश्य का उपयोग करता है: बाइंड: विधि (उनके द्वारा बनाए गए 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 
}) 
+0

यह मेरे लिए काम नहीं कर रहा है, आप मुझे एक काम नमूना को इंगित कर सकते हैं – omujeebr