Навигация между контроллером представления с помощью панели поиска контроллера поиска скрывает и показывает, что есть сбой интерфейса - PullRequest
2 голосов
/ 15 марта 2019

Я использовал простой UISearchController в UITableViewController.Это имеет проблему, когда я использую панель поиска в первом контроллере и которая скрыта в следующем или назад, показывает сбой пользовательского интерфейса.

Вот как это выглядит >> enter image description here

Ниже приведен код для настройки панели навигации.

self.extendedLayoutIncludesOpaqueBars = true

let navigationBar = navigationController.navigationBar
let navigationBarTitleTextAttritbutes = [NSAttributedString.Key.foregroundColor: UIColor.white]
navigationBar.titleTextAttributes = navigationBarTitleTextAttritbutes

if #available(iOS 11.0, *) {
    navigationBar.largeTitleTextAttributes = [NSAttributedString.Key.foregroundColor: UIColor.white]
    navigationBar.prefersLargeTitles = false
}
navigationBar.isTranslucent = false
navigationBar.tintColor = UIColor.white
navigationBar.barTintColor = UIColor.purple

И Для настройкиконтроллер поиска используется как показано ниже

self.searchController = UISearchController(searchResultsController: nil)
self.searchController.dimsBackgroundDuringPresentation = false
self.searchController.hidesNavigationBarDuringPresentation = false
self.searchController.hidesBottomBarWhenPushed = true
self.searchController.obscuresBackgroundDuringPresentation = false

let searchBarObj = self.searchController.searchBar
searchBarObj.delegate = self as? UISearchBarDelegate
searchBarObj.placeholder = "Search here"
searchBarObj.isTranslucent = false
searchBarObj.tintColor = .white

if #available(iOS 11.0, *) {

    searchBarObj.tintColor = .white
    searchBarObj.barTintColor = .white
    navigationItem.searchController = searchController
    navigationItem.hidesSearchBarWhenScrolling = true
} else {
    let tintColor = UIColor.purple
    searchBarObj.barTintColor = tintColor
    searchBarObj.layer.borderColor = tintColor.cgColor
    searchBarObj.layer.borderWidth = 1
    if let table = tableview {
        table.tableHeaderView = searchController.searchBar
    }
}
...