我正在编程中创建一个Uiview,该Uiview正在以其自己的init方法中的单独类中的NIB加载:
:@IBOutlet weak var label: UILabel!
override init (frame: CGRect) {
super.init(frame: frame)
let xibView = UINib(nibName: "aView", bundle: nil).instantiate(withOwner: nil, options: nil)[0] as! UIView
self.addSubview(xibView)
}
在另一堂课中,我正在调用我的Uiview类,并试图将文本设置为我的标签:
self.aView = AView()
self.aView?.frame = CGRect(x: 0, y: 0, width:
self.aView?.label.text = "Sample Text"
self.view.bounds.size.width, height: 200)
self.pageScrollView.addSubview(self.aView!)
每当我尝试将"示例文本"设置为uilabel时,我都会遇到错误:
Optional unexpectedly found nil while attempting to unwrap
因此,由于它是从其笔尖加载的,这是因为尚未将视图绘制到视图中,因此它无法将文本设置为标记属性?如果是这样,我该如何修复?
似乎没有保留您的aView
。因此,恐怕ARC为您发布了它。
我认为您应该在某个地方向您的AView
添加强有力的参考
或您的标签尚未链接到您的XIB文件。
thtyh
您无法访问IBOUTLET,就像您仅通过创建Aview((对象访问其他变量((! 在大多数情况下,此消息出现(相对于 可选的,在尝试解开包装时意外发现了 当您不连接接口构建器中的IBOutlet
(IBOutlet
时。尝试这样做。应该工作。