Прийнята відповідь спрацювала для мене, але я помітив, коли хотів, щоб зображення тіні знову з’являлося, коли з'являлося назад або натискало вперед на інший ВК, на панелі навігації помітно миготіло.
Використовуючи цей метод navigationController?.navigationBar.setValue(true, forKey: "hidesShadow")
у viewWillAppear, тіньова смужка прихована у поточному контролері видимого перегляду.
Використовуючи ці 2 методи
navigationController?.navigationBar.setBackgroundImage(nil, for: .default)
navigationController?.navigationBar.setValue(false, forKey: "hidesShadow")
в viewWillDisappear миготіння все-таки трапляється, але лише тоді, коли тіньове зображення з’являється знову, а не сама навігаційна панель.
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
// 1. hide the shadow image in the current view controller you want it hidden in
navigationController?.navigationBar.setValue(true, forKey: "hidesShadow")
navigationController?.navigationBar.layoutIfNeeded()
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(true)
// 2. show the shadow image when pushing or popping in the next view controller. Only the shadow image will blink
navigationController?.navigationBar.setBackgroundImage(nil, for: .default)
navigationController?.navigationBar.setValue(false, forKey: "hidesShadow")
navigationController?.navigationBar.layoutIfNeeded()
}