2016-12-14 34 views
1

Я использую FUIIndexTableViewDataSource, как описано в https://github.com/firebase/FirebaseUI-iOS/tree/master/FirebaseDatabaseUI.FirebaseUI: Как получить доступ к объекту в indexPath во время segue при использовании FUIIndexTableViewDataSource?

Я хочу показать контроллер подробного представления, когда элемент прослушивается, но я не знаю, как получить ссылку, ключ или данные при подготовке к segue.

Мой код:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
     if segue.identifier == "showDetail" { 
      if let indexPath = self.tableView.indexPathForSelectedRow { 
       // HELP: How do I access the firebase reference, index, and data from here? 
      } 
     } 
    } 

И в функции setupDatabase() Я настроить источник данных.

self.dataSource = self.tableView.bind(
    toIndexedQuery: chatKeysRef, 
    data: chatDataRef, 
    delegate: self, 
    populateCell: { 
     (tableView, indexPath, dataSnapshot) in 

     let cell = tableView.dequeueReusableCell(withIdentifier: "Chat", for: indexPath); 

     if (dataSnapshot == nil) { 
      cell.textLabel?.text = ""; 
      cell.detailTextLabel?.text = ""; 
      return cell; 
     } 

     cell.textLabel?.text = "hello world" 

     if (dataSnapshot!.hasChild("most_recent_message")) { 
      cell.detailTextLabel?.text = dataSnapshot?.childSnapshot(forPath: "most_recent_message").value as? String; 
     } 

     return cell; 
}); 

FUIIndexTableViewDataSource, кажется, не имеют каких-либо публичных свойств или методов, которые помогли бы мне: https://github.com/firebase/FirebaseUI-iOS/blob/master/FirebaseDatabaseUI/FUIIndexTableViewDataSource.h

Readme.md делает ссылку на FUIDataSource но кажется, что не может присутствовать в FUIIndexTableViewDataSource.

ответ

0

данных для выбранной строки можно прочитать как этот

let snapshot: DataSnapshot = self.dataSource.items[indexPath.row] 
+0

Это, кажется, не является собственностью FUIIndexTableViewDataSource, верно? – astromme