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()
在我的名为 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()