不能子类化UIButton:必须调用超类’UIButton’的指定初始值设定项
尝试inheritanceUIButton,但错误Must call a designated initializer of the superclass 'UIButton'
。
研究这样的几个SOpost, 这个 , 这个或其他几个没有帮助,因为这些解决方案不起作用。
我们如何在Swift中UIButton
并定义自定义init函数?
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() ... } }
你必须调用超类’指定初始值设定项:
Swift 3&4:
init(letter: String, viewController: CustomViewController) { super.init(frame: .zero) }
斯威夫特1和2:
init(letter: String, viewController: CustomViewController) { super.init(frame: CGRectZero) }
正如Paulw11在评论中所说,除了作为使用委托模式的弱引用之外,视图通常不应该引用其控制器,这将提高可重用性。