前兩天在測(cè)試的時(shí)候發(fā)現(xiàn)app總是崩到xib搭建的界面,控制臺(tái)po查看發(fā)現(xiàn)xib的子控件是nil,然后從度娘那找到了解決辦法,寫到這里方便以后查看。
ios8 xib中控件為空 解決辦法
override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) {
super.init(nibName: "\(LogInVC.self)", bundle: nil)
/* iOS8.0的真機(jī)上 系統(tǒng)也會(huì)自動(dòng)掉用initWithNibName這個(gè)方法,但是控制器的子控件是空的
這說(shuō)明,iOS8.0 initWithNibName內(nèi)部沒有加載到與當(dāng)前控制器相對(duì)應(yīng)的nib文件
蘋果可能在iOS9.0修復(fù)了這個(gè)bug,為了適配iOS8.0,最好重寫initWithNibName,并將nilName傳進(jìn)去
*/
print("DemoViewController----initWithNilName")
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
原因:iOS8.0的真機(jī)上 系統(tǒng)也會(huì)自動(dòng)掉用initWithNibName這個(gè)方法,但是控制器的子控件是空的
這說(shuō)明,iOS8.0 initWithNibName內(nèi)部沒有加載到與當(dāng)前控制器相對(duì)應(yīng)的nib文件