UICollectionViewCell のアウトレットが nil なのはなぜですか? 質問する

UICollectionViewCell のアウトレットが nil なのはなぜですか? 質問する

Interface Builder でカスタム UICollectionViewCell を作成し、そのビューをクラスにバインドしました。その後、文字列を使用して文字列のラベルに設定しようとすると、ラベルの値が nil になります。

override func viewDidLoad() {
    super.viewDidLoad()

    // Register cell classes
    self.collectionView.registerClass(LeftMenuCollectionViewCell.self, forCellWithReuseIdentifier: "ls")
}

override func collectionView(collectionView: UICollectionView!, cellForItemAtIndexPath indexPath: NSIndexPath!) -> UICollectionViewCell! {

    var cell: LeftMenuCollectionViewCell
    cell = collectionView.dequeueReusableCellWithReuseIdentifier("ls", forIndexPath: indexPath) as LeftMenuCollectionViewCell
    println(cell.label) // <- this is nil, why??
    cell.label.text = "asd"

    return cell
}

サブクラス化されたセル:

class LeftMenuCollectionViewCell: UICollectionViewCell {

    @IBOutlet weak var imageView: UIImageView!
    @IBOutlet weak var label: UILabel!
    @IBOutlet weak var activityIndicatorView: UIActivityIndicatorView!
}

ベストアンサー1

もう一度電話しますself.collectionView.registerClass(LeftMenuCollectionViewCell.self, forCellWithReuseIdentifier: "ls")ストーリーボードを使用している場合は、これを呼び出したくないでしょうストーリーボードの内容が上書きされます。

それでも問題が解決しない場合はreuseIdentifier同じdequeueReusableCellWithReuseIdentifier そしてstoryboard

おすすめ記事