如何在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