1. 程式人生 > >Swift語言環境下使用init 載入自己的 xib檔案

Swift語言環境下使用init 載入自己的 xib檔案

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)方法,但如果要使用,那麼不得不每次都提供兩個引數,這是很麻煩的事。

//重寫無引數初始化方法,自動呼叫xib檔案

//重寫無引數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")

}