При добавлении SearchController в navigationItem строка состояния становится черной, когда она активна. - PullRequest
0 голосов
/ 07 ноября 2018

Это конкретное представление является частью UINavigationController, поэтому навигационная панель предоставляется этим. Я вызываю следующий код в viewDidLoad() текущего контроллера представления.

func buildSearchBar() {
    self.definesPresentationContext = true
    let searchController = UISearchController(searchResultsController: nil)
    self.navigationItem.searchController = searchController
    self.navigationItem.hidesSearchBarWhenScrolling = false
    self.navigationController?.navigationBar.barTintColor = UIColor(displayP3Red: 30/255, green: 50/255, blue: 49/255, alpha: 1.0)
    searchController.searchBar.backgroundColor = UIColor(displayP3Red: 30/255, green: 50/255, blue: 49/255, alpha: 1.0)
}

Используя построитель интерфейса, я установил тот же цвет для панели навигации для контроллера навигации.

Когда панель поиска активна, фон строки состояния становится черным.

Это неактивно. Inactive

Это активно. Active

Я видел эту проблему на StackOverflow много раз, и не было найдено решение, которое работает. Похоже, что для большинства людей это работает сразу после установки контроллера поиска. В последних примерах используется похожий код, и не упоминается наличие этой проблемы.

1 Ответ

0 голосов
/ 07 ноября 2018

Я использовал iPhone и симуляторы в Xcode 10.1 и osx 10.14.1 и не повторил проблему.

enter image description here

Если вы хотите получить тот же цвет, просто добавьте self.navigationController?.navigationBar.isTranslucent = false

   func buildSearchBar() {
    self.definesPresentationContext = true
    let searchController = UISearchController(searchResultsController: nil)
    self.navigationItem.searchController = searchController
    self.navigationItem.hidesSearchBarWhenScrolling = false
    self.navigationController?.navigationBar.barTintColor = UIColor(displayP3Red: 30/255, green: 50/255, blue: 49/255, alpha: 1.0)
    self.navigationController?.navigationBar.isTranslucent = false
    searchController.searchBar.backgroundColor = UIColor(displayP3Red: 30/255, green: 50/255, blue: 49/255, alpha: 1.0)
}

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...