UIBarButtonItem не отвечает на нажатие - PullRequest
0 голосов
/ 22 января 2019

У меня есть 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("!") к функциям кнопки, и он ничего не выводит, находясь в «неактивном» состоянии.

...