0

tableviewcellFirebase 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: 

無効な nib が識別子 (eventCell) に登録されました - nib には、UITableViewCell インスタンスでなければならない最上位オブジェクトが 1 つだけ含まれている必要があります

どんな助けでも素晴らしいでしょう、ありがとう。

4

0 に答える 0