Изменить NavigationBar (iOS 13 Navigation bar change) - Swift 5
Индивидуальное, дистанционное обучение программирование
подробнее
// 1
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
UINavigationBar.appearance().
tintColor =
UIColor.
black
return true
}
// 2
func changeNavBar(navigationController: UINavigationController?, color: UIColor) {
if #available(iOS 13.0, *) {
let navBarAppearance = UINavigationBarAppearance()
UINavigationBar.appearance().setBackgroundImage(UIImage(),
for: UIBarMetrics.default)
navBarAppearance.backgroundColor = color
navBarAppearance.shadowColor = .clear
navigationController?.navigationBar.standardAppearance = navBarAppearance
navigationController?.navigationBar.compactAppearance = navBarAppearance
navigationController?.navigationBar.scrollEdgeAppearance = navBarAppearance
navigationController?.navigationBar.overrideUserInterfaceStyle = .unspecified
navigationController?.navigationBar.barTintColor = color
}
else {
navigationController?.navigationBar.barTintColor = color
}
}
// Использование
override func viewWillLayoutSubviews() {
super.viewWillLayoutSubviews()
changeNavBar(
navigationController: navigationController,
color: .red)
}
Возврат к списку