Строка состояния становится белой в iOS при использовании UISearchController в iOS 13 - PullRequest
2 голосов
/ 09 октября 2019

здесь странная ситуация. Когда я использую UISearchController, я сначала получаю этот вид (как и ожидалось)

enter image description here

Но когда вы выбираете внутри TextField, чтобы начать поиск,Строка состояния становится полностью белой (или черной, если вы находитесь в темном режиме)

enter image description here

Этого никогда не случалось. Есть ли в UISearchController какая-либо настройка, которая говорит ему об использовании определенного стиля строки состояния при использовании панели поиска?

Я бы предпочел, чтобы он оставался таким же, каким он был до выбора TextField

--- РЕДАКТИРОВАТЬ ---

override func viewDidLoad() {
    super.viewDidLoad()

    self.navigationItem.backBarButtonItem = UIBarButtonItem(title: "", style: UIBarButtonItem.Style.plain, target: nil, action: nil)

    frc = getFRC()
    frc.delegate = self

    self.resultsSearchController.delegate = self
    let searchBar = self.resultsSearchController.searchBar

    self.resultsSearchController.searchResultsUpdater = self
    self.resultsSearchController.obscuresBackgroundDuringPresentation = false
    self.resultsSearchController.extendedLayoutIncludesOpaqueBars = true

    searchBar.sizeToFit()
    self.tableView.tableHeaderView = searchBar
    searchBar.placeholder = "Catalog Search"
    searchBar.barTintColor = UIColor.darkAqua
    searchBar.searchTextField.backgroundColor = UIColor.white

    self.definesPresentationContext = true

    searchBarHeight = searchBar.frame.height

    do {
        try frc.performFetch()
    } catch {
        error.tryError(tryMessage: "Perform initial fetch", loc: self)
    }

    if tutorials.catalog {
        createTutorialTab(segueNameOnOpen: "catalogTutorial")
    }
}

1 Ответ

0 голосов
/ 10 октября 2019

Вы используете эту функцию для изменения цвета строки состояния, это своего рода хак для работы со строкой состояния;). Если вы используете одну строку состояния темы во всем приложении, вызовите эту функцию из didFinishLaunching в AppDelegate.

func changeStatusBar(backgroundColor: UIColor, contentColor:UIColor) {

    if let statusBar = UIApplication.shared.value(forKey: "statusBar") as? UIView {
        statusBar.backgroundColor = backgroundColor
        statusBar.setValue(contentColor, forKey: "foregroundColor")
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...