Задать вопрос
AntonBrock
@AntonBrock
screen light

Как правильно реализовать делегат в этом случае?

Цель
При нажатие на кастомную кнопку, в другом кастомном классе подкласса UIView что-то сделать

Что я сделал
Это кастомная кнопка:
protocol CHNumberKeyboardModifyDelegate: class where Self: CHDotsContainer {
    func modify()
}
class CHNumberKeyboardButton: UIButton {
    weak var chNumberKeyboardModifyDelegate: CHNumberKeyboardModifyDelegate?
  
    @objc func touch(_ sender: UIButton!) {
        chNumberKeyboardModifyDelegate?.modify()
    }
}


Это кастомный UIView, где нужно что-то сделать при нажатие на кнопку выше:
class CHDotsContainer: UIView, CHNumberKeyboardModifyDelegate {
    func modify() {
        print("touched")
    }
}


Но дело в том, что я не знаю, как сделать так, чтобы кастомный UIView подписался на делегат.
В init класса это не работает. Я так понимаю, потому что я создаю кнопку, но самой кнопки нет и поэтому не срабатывает делегат.
let button = CHNumberKeyboardButton()
   button.chNumberKeyboardModifyDelegate = self


Вопрос
Как мне в этом случае поступить?
Так как кнопки я создаю в другом месте, но мне нужно и подписать UIView на делегат UIButton.

Чтобы понимали о каких кнопках идет речь, скриншот:
Кнопки цифры - кастомные кнопки. А точки выше - это кастомный UIView

5f719801aafd7554288628.png
  • Вопрос задан
  • 115 просмотров
Подписаться 3 Простой Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы