[英]Convenience initialiser for UIViewController subclass with instance from nib?
我想初始化的子類UIViewController
稱為TestController
。 我有這個快速班:
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")
}
}
在它里面是UIViewController
的實例。 文件的所有者為none(灰色的NSObject),設計器中的UIViewController實例的類在身份檢查器中設置為TestController。 有一個UITextField
實例作為插座。
問題是控制器未從筆尖初始化(我認為),並且textField出口為nil。
我的目標是允許通過自定義初始化程序從nib中以編程方式初始化控制器實例。 我究竟做錯了什么?
您有兩個問題:首先,筆尖(或xib)創建不正確(在界面生成器中不應看到TestController
)。 解決此問題的最簡單方法是重新創建它:New File-> Cocoa Touch Class-> UIViewController
Create Subclass,並且不要忘記選中Also Create a XIB file
第二個問題是您沒有指定要加載的筆尖。 您應該在初始化程序的nibName
參數中指定它:
super.init(nibName: "NewlyCreatedXib", bundle: nil)
解決兩個問題后,我相信您的代碼將正常運行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.