我想将我准备好的UIView(位于xib文件中)嵌入到故事板中。带编码器的UIView初始化导致递归
什么我迄今所做的是:
class TestUIView : UIView {
@IBOutlet weak private var firstButton: UIButton!
@IBOutlet weak private var secondButton: UIButton!
// MARK - Lifetime
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
let view = NSBundle.mainBundle().loadNibNamed("TestUIView", owner: self, options: nil).first as! TestUIView
self.addSubview(view)
}
}
但出于某种原因,我得到坏存取存储器例外。 从查看堆栈跟踪我看到了一堆调用initWithCoder http://i.stack.imgur.com/iH6Am.png 我不知道为什么NSBundle.mainBundle()。loadNibNamed导致此,任何想法?
大概nib文件包含一个'TestUIView'的实例,所以当'loadNibNames'加载nib时,它会通过调用'init(coder)'实例化一个'TestUIView'实例,加载该nib等等,直到递归导致堆栈爆炸。你为什么在'init(coder)'中加载nib? – Paulw11