IBOutlet Nil in UITableViewCell .Xib文件

时间:2018-07-01 20:35:12

标签: swift xcode uitableview nib iboutlet

在我的名为Cell的UITableViewCell子类中,我从相应的Xib文件附加的所有IBOutlet均为零,并导致应用程序崩溃,并显示错误线程1:致命错误:意外地发现nil,同时展开了Optional值在我尝试访问IBOutlet属性的行上。 .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

}

}

1 个答案:

答案 0 :(得分:1)

您的内部视图未与文件所有者关联,因此请创建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 }

commonInit()

从捆绑中加载笔尖,并将 contentview 添加为commonInit()