这个问题已经被问过很多次了,对此我感到抱歉。但是,我想深入理解为什么这样做。所以这是东西:
ViewController -> customView -> UIButton 我试图使用委托/协议访问视图控制器中的按钮。但是在执行所有操作之前,我首先要确保该按钮触发选择器方法。
在customView类中,我有两个UIButton,向它们添加了目标:
var photoButton: UIButton = {
let button = UIButton(type: .system)
button.setTitle("Photos", for: .normal)
button.translatesAutoresizingMaskIntoConstraints = false
button.addTarget(self, action: #selector(handleAddPhotoButton), for: .touchUpInside)
return button
}()
然后在handlePhotoButton中(仍在自定义类中)我这样说:
@objc func handleAddPhotoButton() {
print("button")
}
但是,它根本不起作用。约束很好。我也检查了层次结构调试器,并且该按钮位于顶部。在视图控制器中,自定义视图的初始化如下:
lazy var accessoryView: AccessoryView = {
let view = AccessoryView()
view.delegate = self
view.translatesAutoresizingMaskIntoConstraints = false
return view
}()
我的猜测是,这种观点并没有被自己坚持。但是这里出了什么问题。请帮忙!
答案 0 :(得分:0)
尝试在按钮声明之前添加“惰性”