Swift - SwipingController Programmatic - кнопка не работает
Я создал приложение SwipingController. В приложении должен был быть функционал прокрутки жестами и панель управления с 2-мя кнопками и UIPageControl.
На данный момент эти кнопки должны были печатать только текстовое сообщение в консоли, но это не так.
let nextButton: UIButton = {
let button = UIButton(type: .system)
button.setTitle("NEXT", for: .normal)
button.setTitleColor(.black, for: .normal)
button.titleLabel?.font = UIFont.boldSystemFont(ofSize: 14)
button.addTarget(self, action: #selector(handleNextButton), for: .touchUpInside)
return button
}()
@objc func handleNextButton() {
print("Next Botton Pressed")
}
Я хотел добавить всю панель управления страницей в отдельный файл.
Когда он идет к основному контроллеру, весь функционал работает.
Я не хочу вставлять весь код, поэтому он дает ссылку на гит
https://github.com/SebaKrk/SwipingControllerProgrammatic.git
1 ответ
Проблема в том, что вы устанавливаете цель прямо в коде установки вашего
UIButton
let previousBotton : UIButton = {
let button = UIButton(type: .system)
button.setTitle("PREV", for: .normal)
button.setTitleColor(.black, for: .normal)
button.titleLabel?.font = UIFont.boldSystemFont(ofSize: 14)
button.addTarget(self, action: #selector(handlePreviousButton), for: .touchUpInside)
return button
}()
Похоже,
self
в этот момент не инициализируется. Поскольку этот код запускается перед вашим
init
был запущен.
Таким образом, вы должны установить
target
кнопки после того, как вы позвонили
super.init
тогда это работает.