iOS 13부터는 UIWindowScene의 statusBarManager 속성을 사용하여 StatusBar의 스타일을 변경할 수 있습니다.
전역으로 스타일 변경:
if let windowScene = UIApplication.shared.connectedScenes.first as? UIWindowScene {
windowScene.statusBarManager?.statusBarStyle = .darkContent
}
특정 뷰 컨트롤러에서 스타일 변경:
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
if let windowScene = view.window?.windowScene {
windowScene.statusBarManager?.statusBarStyle = .darkContent
}
}
iOS 13 이전 버전에서는 StatusBar의 스타일을 변경하기 위해 다른 접근 방식을 사용해야 합니다.
Info.plist 파일에 UIViewControllerBasedStatusBarAppearance 항목을 NO로 설정합니다. 이렇게 하면 모든 뷰 컨트롤러에 대해 동일한 StatusBar 스타일이 적용됩니다.
전역 설정 변경:
UIApplication.shared.statusBarStyle = .lightContent
뷰 컨트롤러 기반:
뷰 컨트롤러마다 다른 스타일을 원한다면 UIViewControllerBasedStatusBarAppearance를 YES로 설정하고,
각 뷰 컨트롤러에서 아래의 메소드를 오버라이드합니다.
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}