Custom anonymous closure navigation push button inside of UiView()
У меня есть (MainController) в котором находится tableView, для tableViewHeader я создал кастомную вьюшку (CustomView) отдельно в другой папке - где я добавил лейблы и тд, внутри данной кастомной вьюшки находится кнопка при нажатии на которую должно отобразиться мой второй контроллер (SettingsController). Как можно решить эту проблему ? Пишу код программно - (NO STORYBOARD)
class CustomView: UIView {
..........................
// Это та самая данная кнопка
lazy var settingsButton: UIButton = {
let button = UIButton()
let image = UIImage(named: "gearshape")
button.setImage(image, for: .normal)
button.tintColor = .white
button.isHidden = true
button.addTarget(self, action: #selector(goToSettings), for: .touchUpInside)
button.translatesAutoresizingMaskIntoConstraints = false
return button
}()
@objc func goToSettings() {
}
}
Вот мой основной контроллер
class MainController: UIViewController {
// Прочие вещи и тд
....................................
// Данная функция работает с дефолтным контроллером навигации
// мне нужно как то подключить данную функцию к моей кастномной вьюшки
// то есть при нажатии на кнопку settingsButton
// Все данные SettingsController получает из модели Setting
func showControllerForSetting(setting: Setting) {
let dummySettingViewController = UIViewController()
dummySettingViewController.view.backgroundColor = .white
dummySettingViewController.navigationItem.title = setting.sizeName.rawValue
navigationController?.navigationBar.barStyle = .default
navigationController?.navigationBar.tintColor = .white
let textAttributes = [NSAttributedString.Key.foregroundColor: UIColor.white]
navigationController?.navigationBar.titleTextAttributes = textAttributes
navigationController?.pushViewController(dummySettingViewController, animated: true)
}
}
В итоге: Есть главный контроллер который содержит кастомную вьюшку. Внутри этой вьюшки - есть кнопка при нажатаий на который должно отобразить другой контроллер SettingsController. Как можно отобразить и решить проблему? Не использую сторибоард (NO STORYBOARD)