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
我正在尝试使用 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