尝试继承UIButton,但发生错误Must call a designated initializer of the superclass 'UIButton'
。
研究多个SO帖子like this,this,this或其他几个帖子没有帮助,因为这些解决方案无效。
我们如何在Swift中继承UIButton
并定义自定义初始化函数?
import UIKit
class KeyboardButton : UIButton {
var letter = ""
var viewController:CustomViewController?
required init(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
init(letter: String, viewController: CustomViewController) {
super.init()
...
}
}
答案 0 :(得分:13)
你必须调用超类'指定初始值设定项:
Swift 3& 4:强>
init(letter: String, viewController: CustomViewController) {
super.init(frame: .zero)
}
Swift 1& 2:强>
init(letter: String, viewController: CustomViewController) {
super.init(frame: CGRectZero)
}
正如Paulw11在评论中所说,视图通常不应该引用其控制器,除非是使用委托模式的弱引用,这将提高可重用性。