iOS 개발일기

[Swift] iOS 15, UINavigationBar barTintColor 적용 방법 본문

iOS/Swift

[Swift] iOS 15, UINavigationBar barTintColor 적용 방법

맨날 까먹으니 적어두자 2021. 9. 28. 14:21

iOS 15 업데이트 이후,

 

navigationController에서 barTintColor 적용이 제대로 이루어지지 않아 iOS15에서 색이 적용되지 않아 투명한 네비게이션바가 보이는 현상이 발견되어 이 문제를 해결하는 방법을 찾아봤습니다.

 

in AppDelegate didFinishLaunchingWithOptions

if #available(iOS 15.0, *) { //or (iOS 13.0, *)
    let appearance = UINavigationBarAppearance()
    appearance.backgroundColor = .myColor
    
    UINavigationBar.appearance().standardAppearance = appearance
    UINavigationBar.appearance().scrollEdgeAppearance = appearance
} else {
    UINavigationBar.appearance().barTintColor = .myColor
}

 

UINavigationBarAppearance() 함수는 iOS 13 이상에서 사용가능하며

테스트 결과, iOS 15 이상에서는 UINavigationBarAppearance() 함수를 사용해서 네이게이션바에 대한 속성을 지정해주어야 합니다.

 

예외 적으로 tintColor는 제대로 적용되는 것을 확인했습니다.

 

참고

https://www.hackingwithswift.com/forums/ios/uinavigation-bar-background-color/444

 

UINavigation bar background color – iOS – Hacking with Swift forums

Link copied to your pasteboard.

www.hackingwithswift.com