[iOS] Navigation Controller 에서 Status Bar 색상 변경 안될 때 해결법

2126 단어 iOSiOS

ref : https://terry-some.tistory.com/110


바뀐 Status Bar 모습

수정 전 ( 시간과 와이파이 상태가 검정색이어서 보이지 않음 )


수정 후


변경 방법

  • 결론부터 말하면, "preferredStatusBarStyle 을 건드려서 어쩌구... setNeedsStatusBarAppearanceUpdate() 를 호출해서 어쩌구..."

싹 다 필요없고.

  • 이 코드 한줄로 해결했다.
self.navigationController?.navigationBar.barStyle = .black
  • Info.list 에서 아무 사항도 건드리지 않으면, 디폴트로 알아서 배경이 어둡다면 글씨가 하얗게 된다. 그래서 navigationBar.barstyle 을 black 으로 설정하면 자동으로 하얗게 변하게 된다.

( + 2022/02/08 추가 )
앱을 종료 한뒤 다시 실행하면, 생태바 글씨 색깔이 다시 검정으로 변하는 버그를 발견했다. iOS 13.0 이후로 지원되는 overrideUserInterfaceStyle 을 이용해서 해결했다. UIKit 에서 앱을 다크모드로 간주하고, 상태바 글씨를 하얗게 만들어준다.

override func viewDidLoad() {
	super.viewDidLoad() 
  	overrideUserInterface = .dark
}

iOS 13.0 은 iPhone 6s, 6s 플러스 이후에 출시된 모든 iPhone 기종에서 지원된다.

좋은 웹페이지 즐겨찾기