2015-10-06 62 views
0

我試圖初始化一個名爲TestControllerUIViewController的子類。我有這個迅速類:用於UIViewController子類的便捷初始化器,其實例來自nib?

class TestController : UIViewController { 

    let testString : String 
    @IBOutlet weak var test: UITextField! 

    required init(withString string: String) { 

     self.testString = string 
     super.init(nibName: nil, bundle: nil) 
    } 

    required init?(coder aDecoder: NSCoder) { 
     fatalError("init(coder:) has not been implemented") 
    } 

}

我也有叫TestController一個筆尖文件, enter image description here

裏面是UIViewController一個實例。該文件的所有者爲none(NSObject爲灰色),並且設計器中的UIViewController實例的類在身份檢查器中設置爲TestController。有一個UITextField實例作爲插座。

enter image description here

的問題是,所述控制器不從筆尖(我認爲)初始化,並且將TextField出口是零。

我的目標是允許通過自定義初始化程序從編程的初始化控制器的實例。我究竟做錯了什麼?

回答

0

您有兩個問題:首先,您的筆尖(或xib)未正確創建(您不應在界面構建器中看到TestController)。解決這個問題的最簡單方法是重新創建:新建文件 - >可可觸摸講座>創建子類的UIViewController,不要忘記檢查Also Create a XIB file

的第二個問題是,你不指定什麼你想加載的筆尖。你應該在nibName參數初始化的指定:

super.init(nibName: "NewlyCreatedXib", bundle: nil) 

當你解決這兩個問題,我相信你的代碼將正常工作。

相關問題