問題描述:
1.在ViewController 的xib 視圖中 拖了控件, 也關(guān)聯(lián)到了 VC.swift (ViewController.swift 以下簡(jiǎn)稱VC) 中,但是,出現(xiàn)在viewDidLoad 方法中未打印出來的控件是nil (未初始化) ----- ios 8.3 系統(tǒng) (測(cè)試機(jī)低版本系統(tǒng)只有這一個(gè))
ios 10.3.3
ios 8.3 系統(tǒng)版本問題產(chǎn)生的BUG:
本人自己使用的手機(jī)和 模擬器的版本都是 iOS 10+ 的,未出現(xiàn) 這個(gè)問題
在使用 xib 創(chuàng)建 swift VC 時(shí),需要加上這兩句代碼
一般這重寫放在 基類 VC 里面
class BaseViewController: UIViewController{
//一般這重寫放在 基類 VC 里面
override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) {
super.init(nibName: "\(type(of: self))", bundle: nil)
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
...
}
其中 "(type(of: self))" 是打印出本身的類名
打印的結(jié)果就是
print("\(type(of: self))")
// "BaseViewController"
其實(shí)就是重寫 初始化nib 的方法 ,在OC 中想要顯示
結(jié)合xib 的VC 的話, 需要寫 initWithNibName: 的方法是一樣的, 類比! 類比!
PeopleViewController *vc = [[PeopleViewController alloc] initWithNibName:@"nibName" bundle:[NSBundle mainBundle]];
總結(jié):
1 .所有 swift 結(jié)合xib創(chuàng)建的 VC 必須加上 以上2句 代碼
2 . "(type(of: self))" 是打印出本身的類名 ,但是type(of: ) 的用法未深究,待研究...
記錄一下,如果哪里說錯(cuò)了,還請(qǐng)大牛指教,感激不盡.......