我有ButtonClass,它实现了buttonTapped方法。
按钮本身位于视图上。我需要在按下按钮时添加一个额外的图层,但我无法在ButtonClass中访问self,因为self是一个按钮而不是视图...基本上我需要访问viewController中的self.view但是那是另一个班级。如果我创建一个像viewController()这样的新实例,它就不会有帮助,因为它不会'是同一个实例。
答案 0 :(得分:1)
如果要从自定义按钮类添加buttonTapped方法,则需要创建委托,并在用户调用buttonTapped方法时调用委托方法。
在自定义按钮类
中protocol YourCustomButtonDelegate {
func changeSomethingInTheView()
}
class YourCustomButtonClass {
var delegate: YourCustomButtonDelegate?
func buttonTapped(_ sender: AnyObject) {
if let delegate = delegate {
delegate.changeSomethingInTheView()
}
}
}
在ViewController中
class ViewController: UIViewController, CustomCellDelegate {
@IBOutlet weak var button: YourCustomButton!
override func viewDidLoad() {
super.viewDidLoad()
button.delegate = self
}
func changeSomethingInTheView() {
// write your code here...
}
}