我正在尝试使用FirebaseUI使用自定义UITableViewCells填充UITableView。除了FirebaseTableViewDataSource.populateCell()方法提供的TableViewCells没有"连接"到视图中的出口外,一切似乎都有效。下面是一个例子:
这是自定义UITableViewCell类。被加载视图控制器的故事板中的UITableView有这个自定义单元格类。
class JobTableViewCell : UITableViewCell {
@IBOutlet weak var labelJobName: UILabel!
}
下面是视图控制器的ViewDidLoad()中设置表格的代码:
dataSource = FirebaseTableViewDataSource(ref : ref, cellClass : JobTableViewCell.self, cellReuseIdentifier: "JobTableViewCell", view: self.tableView);
dataSource.populateCell{(cell : UITableViewCell, obj : NSObject) -> Void in
let snapshot = obj as! FIRDataSnapshot;
let job = Job(snapshot);
let jobCell = cell as! JobTableViewCell
//////////////////////////////////////////////////////////
// jobCell and its outlets are nil so this next statement
// causes exception.
jobCell.labelJobName.text = job.name;
}
self.tableView.dataSource = self.dataSource;
所以问题是如何让FirebaseUI提供自定义单元与的出口连线?我不知道该怎么做。
我的解决方案是停止在iOS上使用FirebaseUI
您需要使用self.tableView.bind
var dataSource: FUITableViewDataSource!
self.dataSource = self.tableView.bind(to: ref) { tableView, indexPath, snapshot in
// Dequeue cell
let cell = tableView.dequeueReusableCell(withIdentifier: "reuseIdentifier", for: indexPath)
/* populate cell */
return cell
}
参见Firebase UI数据库for iOS获取更多信息