Swift語言環境下使用init 載入自己的 xib檔案
阿新 • • 發佈:2019-02-19
1.Swift下建立xib
2.重寫init(nibNameOrNil, bundleOrNil)
要讓Controller能與xib關聯,關鍵是init(nibNameOrNil, bundleOrNil)方法。既然子類沒有自動繼承,我們就得親自新增相關程式碼。如下:
1繼承並重寫用nibName初始化的init方法
//要讓Controller能與xib關聯,關鍵是init(nibNameOrNil, bundleOrNil)方法
overrideinit(nibName nibNameOrNil: String?, bundle nibBundleOrNil: NSBundle?) {
super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
}
2前面我們重寫了init(nibNameOrNil, bundleOrNil)方法,但如果要使用,那麼不得不每次都提供兩個引數,這是很麻煩的事。
//重寫無引數init方法,自動呼叫xib檔案
convenienceinit(){
var nibNameOrNil ="NibViewController"
self.init(nibName: nibNameOrNil, bundle:nil)
}
3.附加程式碼
寫完上述程式碼後,編譯器會報錯,提示要加入一段程式碼才行。雙擊錯誤提示,編譯器會自動加入以下程式碼。當然你也可以親手打進去:
//編譯器提示需要加入的程式碼
required init(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}