Я реализую UINavigationBar для двух UIViewController: предположим, что ControllerA и ControllerB.
ControllerA имеет полупрозрачный UINavigationBar со свойством backgroundColor = .clear.
ControllerB имеет prefersLargeTitles свойство и белый фон.
Я должен нажать и выскочить из ControllerA -> ControllerB . Вот код, который я реализовал в controllerA методах жизненного цикла:
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
if #available(iOS 11.0, *) {
navigationItem.largeTitleDisplayMode = .never
}
navigationController?.navigationBar.isTranslucent = true
navigationController?.navigationBar.tintColor = .white
navigationController?.navigationBar.backgroundColor = UIColor.clear
navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
navigationController?.navigationBar.shadowImage = UIImage()
navigationController?.navigationBar.barTintColor = .clear
navigationController?.navigationBar.titleTextAttributes = [
.font: FontFamily.SFProRounded.bold.font(size: 18),
.foregroundColor: UIColor.white
]
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
if #available(iOS 11.0, *) {
navigationController?.navigationBar.prefersLargeTitles = true
navigationItem.largeTitleDisplayMode = .always
navigationController?.navigationBar.largeTitleTextAttributes = [
.font: FontFamily.SFProRounded.bold.font(size: 22),
.foregroundColor: UIColor.black
]
}
navigationController?.navigationBar.titleTextAttributes = [
.font: FontFamily.SFProRounded.bold.font(size: 18),
.foregroundColor: UIColor.black
]
navigationController?.navigationBar.tintColor = .black
navigationController?.navigationBar.backgroundColor = UIColor.white
navigationController?.view.backgroundColor = UIColor.white
navigationController?.navigationBar.barTintColor = .white
}
Ниже проблемы, с которыми я столкнулся в разных версиях iOS:
- Версия
Неправильная анимация и цвет заголовка при нажатии кнопки «Назад» для закрытия контроллера. Видео здесь: https://youtu.be/1g9esUgYDK8
Версия == iOS 13 Большой заголовок не перемещается с отключенным контроллером во время анимации поп-музыки. Видео тут: https://youtu.be/25k3oz2_wcE
Как это решить? Заранее спасибо