我想制作一个自定义容器视图控制器,并将一些成员添加到UIViewController
的子类中。当我尝试使用下面的代码从应用程序的委托初始化它:Swift中UIViewController的子类成员的双重初始化
self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
self.window?.rootViewController = CustomContainerViewController()
self.window?.makeKeyAndVisible()
所有CustomContainerViewController
成员被初始化两次。
这里是CustomContainerViewController
的代码:
class CustomContainerViewController: UIViewController {
let tabBar = CustomTabBar()
override init() {
super.init()
}
required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: NSBundle?) {
super.init(nibName: nibNameOrNil?, bundle: nibBundleOrNil?)
}
}
这里是CustomTabBar
的代码:
class CustomTabBar: UIView {
override init(){
println("init")
super.init()
}
override init(frame: CGRect) {
println("initWithFrame:")
super.init(frame: frame)
}
required init(coder aDecoder: NSCoder) {
println("initWithCoder:")
super.init(coder: aDecoder)
}
}
每当你使用前面提到的代码初始化从应用程序委托的CustomContainerViewController
,总是打印“init”,“initWithFrame”两次。
它为我说“额外论证”捆绑'在通话中“,为什么? – Caipivara 2014-12-05 13:23:14
检查你的咒语和变量类型 – WeZZard 2014-12-05 14:01:26
我猜你每天都会学到新的东西。 +1 – 2015-01-24 10:17:20