UITableViewCell .Xib 文件中的 IBOutlet Nil

IBOutlet Nil in UITableViewCell .Xib file

在我的名为 Cell 的 UITableViewCell 子 class 中,我从相应的 Xib 文件附加的所有 IBOutlet 都是 nil,导致应用程序崩溃并出现错误 线程 1:致命错误:在我尝试访问 IBOutlet 的 属性 的行上展开可选值 时意外发现 nil。 .Xib 文件的文件所有者设置为单元格,.Xib 文件中的 UITableViewCell 也是如此

代码:

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

}

}

您的内部视图未与您的文件所有者关联,因此创建一个 IBOutlet 属性。

@IBOutlet private var contentView: UIView!

将其与 xib 文件的主视图连接起来作为参考。

并在您的自定义函数中 class

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

commonInit() 从 bundle 加载你的 nib 并将你的 contentview 添加为 commonInit()