Вам необходимо полностью переделать класс CustomButton
.Он не должен иметь свойства button
.Он должен инициализировать себя.
И настройка цели принадлежит контроллеру представления, а не классу кнопок.
Обновленный код кнопки:
class CustomButton: UIButton {
init() {
super.init(frame: CGRect(x: 0, y: 0, width: 200, height: 200))
setTitle("PRESS", for: .normal)
backgroundColor = UIColor.red
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
Обновленный контроллер представления:
class ViewController: UIViewController {
var button = CustomButton()
override func viewDidLoad() {
super.viewDidLoad()
view.addSubview(button)
button.addTarget(self, action: #selector(buttonPressed), for: .touchUpInside)
}
@objc func buttonPressed() {
print("woohoo!")
}
}