我正在使用FUIIndexTableViewDataSource,如https://github.com/firebase/FirebaseUI-iOS/tree/master/FirebaseDatabaseUI中所述。
我想显示一个细节视图控制器时,一个项目被点击,但我不知道如何获得参考,关键或数据时,准备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中。
最佳答案
所选行的数据可以如下读取
let snapshot: DataSnapshot = self.dataSource.items[indexPath.row]