Об этом спрашивали несколько раз, и я прошу прощения за это. Но я хочу получить хорошее глубокое понимание, почему это происходит. Так вот в чем дело:
ViewController -> customView -> UIButton
Я пытаюсь получить доступ к кнопке в контроллере представления, используя делегат / протоколы. Но прежде чем делать все, что я хочу, сначала убедитесь, что кнопка вызывает методы выбора.
В классе customView у меня есть две кнопки UIB, к ним добавлены цели:
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")
}
Однако, это просто не работает. Ограничения в порядке. Я также проверил heirarchy отладчик, и кнопка сверху. В контроллере представления пользовательское представление инициализируется следующим образом:
lazy var accessoryView: AccessoryView = {
let view = AccessoryView()
view.delegate = self
view.translatesAutoresizingMaskIntoConstraints = false
return view
}()
Я предполагаю, что представление не поддерживается самим собой. Но что здесь не так? Пожалуйста, помогите!