2017-10-06 54 views
0

你不能在awaikeFromNib中调用loadNibNamed吗?从awakeFromNib调用Bundle.main.loadNibNamed时的Infinit循环

注意当前视图,与awakeFromNib方法在同一个Nib中,但它不是相同的视图。

override func awakeFromNib() { 

    let otherView = Bundle.main.loadNibNamed("MyViews", owner: self, options: nil)![2] as! OtherView 

... 
+0

什么是您的.xib文件中的根视图的类?看起来您将根视图的类设置为加载此笔尖的相同类。 –

回答

2

你不告诉loadNibNamed从nib加载特定的视图。它加载所有的视图。您正在通过对views数组进行下标来访问特定视图,但所有视图都已加载,以便您可以执行此操作。

这意味着你再次触发awakeFromNib,加载笔尖,触发awakeFromNib等等。

所以简短的回答是,正如你所发现的,加载源笔尖awakeFromNib将导致无限循环。