Начать редактирование UISearchbar изменяет цвет UINavigationbar - PullRequest
0 голосов
/ 12 сентября 2018

В viewcontroller у меня есть панель поиска и табличное представление see screenshot

Когда я нажимаю на панель поиска, цвет панели навигации меняется на черный Я изменил цвет панели навигации, но все равно он меняет цвет панели навигации

Вот что происходит, когда я нажимаю на панель поиска. see screenshot

Вот код:

func searchBarTextDidBeginEditing(_ searchBar: UISearchBar) {
    self.setTitle("Add users", showBackButton: false, navBGColor: .white, navTitleColor: .black)
}

func setTitle(_ titleStr: String = "", showBackButton: Bool = true, navBGColor: UIColor = UIColor.white, navTitleColor: UIColor = UIColor.black) {

    self.title = titleStr

    self.hideNavigationBar(false)
    self.showBackButton(showBackButton, navTitleColor == .black)

    self.changeNavBarAppearance(navBGColor, navTitleColor)
}
func changeNavBarAppearance(_ navColor: UIColor, _ titleColor: UIColor = UIColor.white) {

    let titleTextAttribute = [NSAttributedStringKey.font:R.Fonts.AppNavBarFont,
                              NSAttributedStringKey.foregroundColor : titleColor]

    self.navigationController?.navigationBar.tintColor = titleColor
    self.navigationController?.navigationBar.barTintColor = navColor
    self.navigationController?.navigationBar.isTranslucent = false
    self.navigationController?.navigationBar.titleTextAttributes = titleTextAttribute
    self.navigationController?.navigationBar.shadowImage = UIImage()
}

1 Ответ

0 голосов
/ 13 сентября 2018

У меня была похожая проблема, когда я добавлял наблюдателя уведомлений клавиатуры в viewcontroller.

Я установил наблюдателя уведомлений клавиатурыWillShow в viewcontroller, затем я нажал на него другой viewcontroller, не удаляя наблюдателя уведомлений клавиатуры..

Когда я щелкаю панель поиска, она отправляет уведомление предыдущему viewcontroller, в который помещается этот новый viewcontroller, который вызывал метод keyboardWillShow, и я менял цвет панели навигации.

Iудалил наблюдателя уведомлений для клавиатуры и проблема была исправлена ​​

...