iOS 带有自定义 UITableViewCell 的 FirebaseUI

iOS FirebaseUI with Custom UITableViewCell

我正在尝试使用 FirebaseUI 使用自定义 UITableViewCells 填充 UITableView。除了 FirebaseTableViewDataSource.populateCell() 方法提供的 TableViewCells 不是 "wired" 到视图中的出口外,一切似乎都正常。这是一个例子:

这是自定义 UITableViewCell class。正在加载的视图控制器的故事板中的 UITableView 具有此自定义单元格 class。

class JobTableViewCell : UITableViewCell {
  @IBOutlet weak var labelJobName: UILabel!
}

这是设置 table 的视图控制器的 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 database for iOS