如何在Swift中將自定義初始值設定項添加到UIViewController
子類中?Swift:自定義ViewController初始值設定項
我創建了一個子類的UIViewController
,看起來是這樣的:
class MyViewController : UIViewController
{
init(leftVC:UIViewController, rightVC:UIViewController, gap:Int)
{
self.leftVC = leftVC;
self.rightVC = rightVC;
self.gap = gap;
super.init();
setupScrollView();
setupViewControllers();
}
}
當我運行它,我得到一個致命的錯誤:
fatal error: use of unimplemented initializer 'init(nibName:bundle:)' for class 'MyApp.MyViewController'
我讀過elewhere當添加一個自定義初始值設定項也必須覆蓋init(coder aDecoder:NSCoder)
,所以讓我們覆蓋該init
,看看會發生什麼:
override init(coder aDecoder: NSCoder)
{
super.init(coder: aDecoder);
}
如果我添加這個,Xcode抱怨self.leftVC is not initialized at super.init call
。所以我想這也不是解決方案。所以我想知道如何將Swift中的自定義初始化程序正確地添加到ViewController
子類中(因爲在Objective-C中,這似乎不成問題)?
怎樣的,你試圖實例你'MyViewController'? – 2014-08-27 12:58:16
爲什麼不實例化viewDidLoad()中的所有東西,在那裏你可以初始化他們只是你想要的方式 – tudoricc 2014-08-27 12:59:57
@MikePollard與dualViewCtrl = DualViewCtrl(leftVC:l,rightVC:r,gap:50)...我已經發現我需要使用initWithNib初始值設定項。 – BadmintonCat 2014-08-27 13:01:09