我无法将 init 方法添加到以下 UIViewController 类。我需要在 init 方法中编写一些代码。我必须写 init(coder) 方法吗?即使我添加了编码器和解码器方法,我仍然会出错。我也尝试过使用不带任何参数的 init 方法,但这似乎也不起作用。
class ViewController: UIViewController {
var tap: UITapGestureRecognizer?
override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: NSBundle?) {
super.init(nibName: nil, bundle: nil)
tap = UITapGestureRecognizer(target: self, action: Selector("handleTap:"))
}
...
...
}
如果我调用不带参数的 super.init() 方法,错误是“必须调用父类(super class)的指定初始化器”,如果我传递参数 nib 和 bundle,则错误是“Required initializer init(coder)”。
即使我添加了 init(coder) 和 init(decoder) 它也不起作用。
最佳答案
我用过:
convenience init() {
self.init(nibName:nil, bundle:nil)
}
有人建议:
convenience init(){
self.init()
}
但这会给你一个无限循环。
关于ios - 如何在 Swift 中编写 UIViewController 的初始化方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30679129/