IBOutlet Nil в файле UITableViewCell .Xib - PullRequest
0 голосов
/ 01 июля 2018

В моем подклассе UITableViewCell, называемом Cell, все IBOutlets, которые я присоединяю из соответствующего Xib-файла, равны nil и приводят к сбою приложения с ошибкой Thread 1: Неустранимая ошибка: неожиданно обнаружен nil при развертывании необязательного значения на линии, где я пытаюсь получить доступ к свойству IBOutlet. Владелец файла .Xib-файла установлен в ячейку, как и UITableViewCell в .Xib-файле

Код:

import UIKit

class Cell: UITableViewCell, UICollectionViewDelegate,UICollectionViewDataSource {

@IBOutlet weak var label: UILabel! (CONNECTED TO .XIB FILE)

override func awakeFromNib() {
    super.awakeFromNib()
    viewDidLoad()
    print(label.text)//APP CRASHES HERE!
    // Initialization code
}

override func setSelected(_ selected: Bool, animated: Bool) {
    super.setSelected(selected, animated: animated)

    // Configure the view for the selected state
}

func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
    return 1
}

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cellId", for: indexPath)
    return cell

}

}

1 Ответ

0 голосов
/ 02 июля 2018

Ваш вид изнутри не связан с владельцем файла, поэтому задайте свойство IBOutlet.

@IBOutlet private var contentView: UIView!

связать это с основным видом xib-файла в качестве эталонного выхода.

и внутри этой функции вашего пользовательского класса

@objc required public init(coder aDecoder: NSCoder) { super.init(coder: aDecoder)! commonInit() // write this to load nib file }

in commonInit() загрузите перо из пакета и добавьте contentview как commonInit ()

...