【发布时间】:2015-01-05 18:00:13
【问题描述】:
我有以下代码:
import UIKit
class tabBarVC: UIViewController, UITabBarControllerDelegate {
var tabBarController : UITabBarController // ERROR1: Cannot override with a stored property 'tabBarController'
override init() {
super.init()
self.tabBarController = UITabBarController()
}
override func viewDidLoad() { //ERROR2: 'required' initializer 'init(coder:)' must be provided by subclass for 'UIViewController'
super.viewDidLoad()
}
}
我需要定义和初始化一个名为tabBarController 的变量,它可以作为self.tabBarController 访问。
Xcode 出现两个错误:
- 不能用存储的属性覆盖
tabBarController - 'required'初始化器
init(coder:)必须由UIViewController的子类提供
我做错了什么?
**编辑**
import UIKit
class tabBarVC: UIViewController, UITabBarControllerDelegate {
var tabBarController : UITabBarController() // Error: "Consecutive declarations on a line must be separated by ';'"
override init() {
super.init()
self.tabBarController?.delegate = self
}
required init(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override func viewDidLoad() {
super.viewDidLoad()
}
}
【问题讨论】:
-
如果您从情节提要或 nib 加载此 VIewController,则需要更改
required init(coder aDecoder: NSCoder)以调用超类声明super.init(coder: aDecoder)