0

我试图弄清楚如何为tableviewcell使用 Firebase UI做一个自定义 xib 和类

我在 XCode 中设置的东西:我有一个名为的自定义 xib 文件EventCellView.xib,并且 xib 内部的自定义 tableviewcell 有一个重用 id eventCell,它也是类EventTableViewCell

我的EventTableViewCell自定义类代码是

class EventTableViewCell: UITableViewCell {

  @IBOutlet weak var eventTitle: UILabel!
  @IBOutlet weak var eventDate: UILabel!

  override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
   super.init(style: style, reuseIdentifier: reuseIdentifier)
  }

  required init?(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)
  }

  override func awakeFromNib() { super.awakeFromNib() }
}

目前,从 github 阅读 Firebase UI 文档,我尝试了多种不同的方法来设置我的数据源,这是最近的一种:

 self.dataSource = FirebaseTableViewDataSource(ref:fbRef, 
                               nibNamed: "EventCellView", 
                               cellReuseIdentifier: "eventCell", 
                               view: self.eventTable)


 self.dataSource!.populateCellWithBlock { (cell: UITableViewCell, obj: NSObject) -> Void in
    let snap = obj as! FDataSnapshot
    var customCell = cell as! EventTableViewCell
    customCell.eventTitle.text = snap.key
  }

基本上按照 Github 上的说明,它说要子类UITableViewCell化并实现 init (style, resuseId) 方法,然后我cellResuseIdentifier在数据源中指定和 nib ,我得到以下错误:

Terminating app due to uncaught exception `NSInternalInconsistencyException`, reason: 

为标识符 (eventCell) 注册的 nib 无效 - nib 必须恰好包含一个顶级对象,该对象必须是 UITableViewCell 实例

任何帮助都会很棒,谢谢。

4

0 回答 0