iOS 앱 개발에서 내비게이션 바(Navigation Bar)의 배경색을 변경해야 하는 경우가 자주 있습니다. 이 작업은 스토리보드(Storyboard)를 이용하는 방법과 코드로 직접 구현하는 방법, 두 가지로 처리할 수 있습니다. 각각의 방법을 자세히 살펴보겠습니다.
방법 1: 스토리보드에서 설정하기
스토리보드 에디터를 사용하면 코드 없이도 간편하게 내비게이션 바의 배경색을 변경할 수 있습니다. 다음 순서대로 진행하세요.
새 프로젝트를 생성한 뒤, 뷰 컨트롤러(View Controller)를 선택하고 Navigation Controller에 Embed 처리합니다.
내비게이션 바를 선택한 후 Attribute Inspector(속성 인스펙터)로 이동합니다.
Xcode 10 기준으로는 아래 화면과 같이 표시됩니다. 속성 인스펙터에서 Tint Color를 선택하면 해당 색상이 내비게이션 컨트롤러 전체에 적용됩니다.

방법 2: 코드로 프로그래밍 방식 설정하기
코드를 통해 내비게이션 바의 배경을 변경하려면 해당 뷰 컨트롤러의 viewDidLoad() 또는 viewWillAppear() 메서드 안에 아래 코드를 작성하면 됩니다.
self.navigationController?.navigationBar.barTintColor = #colorLiteral(red: 0, green: 0, blue: 0, alpha: 1)
텍스트 색상, 틴트 색상, 투명도 등 추가 속성 변경
배경색 외에도 텍스트 색상, 틴트 색상, 반투명 여부 등 다른 속성들을 함께 조정하고 싶다면 UINavigationBar.appearance()를 활용할 수 있습니다.
UINavigationBar.appearance().barTintColor = .black UINavigationBar.appearance().tintColor = .white UINavigationBar.appearance().titleTextAttributes = [NSAttributedStringKey.foregroundColor: UIColor.white] UINavigationBar.appearance().isTranslucent = false
위 코드는 각각 다음과 같은 역할을 합니다.
barTintColor: 내비게이션 바의 배경색을 지정합니다.
tintColor: 바 버튼 아이템 등 상호작용 요소의 색상을 지정합니다.
titleTextAttributes: 제목 텍스트의 색상 및 폰트 등 스타일을 지정합니다.
isTranslucent: 내비게이션 바의 반투명 효과를 켜거나 끕니다.
참고로 NSAttributedStringKey.foregroundColor는 Swift 4 이전 문법이며, Swift 4.2 이상에서는 NSAttributedString.Key.foregroundColor로, Swift 5 이후에는 .foregroundColor로 간결하게 작성할 수 있습니다.