如何在Swift中给UIViewController
子类添加自定义初始化器?
我创建了一个UIViewController
的子类,看起来像这样:
class MyViewController : UIViewController
{
init(leftVC:UIViewController, rightVC:UIViewController, gap:Int)
{
self.leftVC = leftVC;
self.rightVC = rightVC;
self.gap = gap;
super.init();
setupScrollView();
setupViewControllers();
}
}
当我运行它时,我遇到了致命错误:
致命错误:使用未实现的初始化程序 'init(nibName:bundle:)',适用于类 'MyApp.MyViewController'
我在别处读到过,当添加自定义初始化程序时,必须同时重写 init(coder aDecoder:NSCoder)
,所以让我们重写 init
并看看会发生什么:
override init(coder aDecoder: NSCoder)
{
super.init(coder: aDecoder);
}
如果我添加这个,Xcode会抱怨说self.leftVC在super.init调用时未初始化
。所以我猜那也不可能是解决方案。那么我想知道如何正确地向Swift的ViewController
子类添加自定义初始化程序(因为在Objective-C中似乎并不是问题)?
MyViewController
的? - Mike Pollard