iOS statusBar фон становится черным после перехода - PullRequest
0 голосов
/ 06 июня 2018

Я нажимаю от VC1 внутри UINavigationController к VC2.VC2 имеет прозрачную панель навигации.

В viewDidLoad внутри VC2:

self.navigationController?.navigationBar.isTranslucent = true
self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
self.navigationController?.navigationBar.barTintColor = .clear
self.navigationController?.navigationBar.backgroundColor = .clear

Когда я нажимаю кнопку «Назад», я хочу восстановить панель навигации, как она была (зеленого цвета), поэтому внутри viewWillDissapear яесть следующее:

self.navigationController?.navigationBar.isTranslucent = false
self.navigationController?.navigationBar.setBackgroundImage(nil, for: .default)
self.navigationController?.navigationBar.barTintColor = .green
self.navigationController?.navigationBar.backgroundColor = .green

Но я получаю эту странную черную строку состояния при переходе:

strange black line on topenter image description here

Вот пример проекта

Здесь ожидается переход: enter image description here

1 Ответ

0 голосов
/ 06 июня 2018

Можете ли вы попробовать ниже,

override func viewDidLoad() {
    super.viewDidLoad()

    UINavigationBar.appearance().backgroundColor = .clear
    UINavigationBar.appearance().barTintColor = .clear

    self.navigationController?.navigationBar.shadowImage = UIImage()
    self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
}

и

override func viewWillDisappear(_ animated: Bool) {
    super.viewWillDisappear(animated)

    UINavigationBar.appearance().backgroundColor = .green
    UINavigationBar.appearance().barTintColor = .green

    self.navigationController?.navigationBar.setBackgroundImage(nil, for: .default)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...