我想製作一個自定義容器視圖控制器,並將一些成員添加到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