У меня есть viewController
, который встроен в navigationController
.Из моего viewController
я программно добавляю три UIBarButtonItem
и UISearchBar
.Под панелью навигации у меня есть WKWebView
, который покрывает весь экран.Проблема в том, что UIBarButtonItems
не реагирует ни на какие щелчки, прежде чем я записал на пленку или каким-либо образом взаимодействовал с WKWebView
.После того, как я коснусь или прокручу WKWebView
, UIBarButtonItems
будет работать нормально, пока я не выполню поиск в UISearchBar
.UIBarButtonItems
перестает отвечать, пока я не взаимодействую с WKWebView
.
Я попытался добавить navigationController?.navigationBar.becomeFirstResponder()
в DidAppear
и в searchBarTextDidEndEditing
, как предлагается в некотором сообщении на форуме.Это не влияет на проблему.
Это то, что я делаю в DidLoad
, чтобы инициировать панель навигации:
self.navigationController?.setNavigationBarHidden(false, animated: true)
searchBar.delegate = self
searchBar.sizeToFit()
searchBar.setImage(UIImage(named: "ssl"), for: .search, state: .normal)
searchBar.searchBarStyle = .minimal
searchBar.showsCancelButton = false
let textField = searchBar.value(forKey: "searchField") as? UITextField
textField?.textAlignment = .center
textField?.leftViewMode = UITextField.ViewMode.never
textField?.clearButtonMode = UITextField.ViewMode.whileEditing
textField?.keyboardType = .URL
textField?.autocapitalizationType = .none
textField?.leftView?.contentMode = .scaleAspectFit
let back = UIBarButtonItem(image: UIImage(named: "back"), style: .plain, target: self, action: #selector(naviagteBack))
let forward = UIBarButtonItem(image: UIImage(named: "forward"), style: .plain, target: self, action: #selector(naviagteForward))
let reload = UIBarButtonItem(image: UIImage(named: "reload"), style: .plain, target: self, action: #selector(navigateReload))
navigationItem.titleView = searchBar
reload.tintColor = .black
navigationItem.rightBarButtonItem = reload
back.tintColor = .lightGray
forward.tintColor = .lightGray
navigationItem.leftBarButtonItems = [back, forward]
Я хочу, чтобы UIBarButtonItems
был активным все время,Не только после того, как я взаимодействую с WKWebView
.И нет, это не имеет ничего общего с возможностями goBack()
и т. Д. Я добавил print("!")
к функциям кнопки, и он ничего не выводит, находясь в «неактивном» состоянии.