Ric*_*hiy 3 delegation uibutton target-action ios swift
我想要一个协议:
protocol CameraButtonDelegate: class {
func cameraButtonDidPress(_ sender: UIButton)
}
Run Code Online (Sandbox Code Playgroud)
因此,我可以将任何客户端分配给按钮,例如:
cameraButton.addTarget(delegate, action: #selector(cameraButtonDidPress), for: .touchUpInside)
Run Code Online (Sandbox Code Playgroud)
但是,它不能编译,因为我必须在中指定特定功能action,例如:
cameraButton.addTarget(delegate, action: #selector(AAPLViewController.cameraButtonDidPress), for: .touchUpInside)
Run Code Online (Sandbox Code Playgroud)
如果我想通过一个按钮将多个客户作为目标,该如何解决此问题?
如果您制定协议,它应该可以工作 @objc
@objc protocol CameraButtonDelegate: class {
func cameraButtonDidPress(_ sender: UIButton
}
Run Code Online (Sandbox Code Playgroud)
并将选择器指定为协议方法
cameraButtonDidPress.addTarget(delegate, action: #selector(CameraButtonDelegate.cameraButtonDidPress), for: .touchUpInside)
Run Code Online (Sandbox Code Playgroud)