[iOS/Swift] iOS13 에서 라이트모드(또는 다크모드)만 지원하기 (turn off darkmode)

최대 1 분 소요

iOS13부터 다크모드가 생겼습니다.
그러면서 Xcode 디폴트가 다크모드/라이트모드 모두 지원 상태로 되어 하나만 지원하고 싶을 때 어려움을 겪었습니다.

이번 글은

iOS13에서 라이트모드(또는 다크모드)만 지원하기 위한 방법입니다.

1. info.plist

<key>UIUserInterfaceStyle</key>
<string>Light</string>

info.plist에 해당 Source Code를 추가하거나

image-center 사진처럼 Appearance를 추가합니다.

다크모드만 지원하고 싶을 때는 Light -> Dark로 설정합니다.

2. AppDelegate.swift

AppDelegate.swift > didFinishLaunchingWithOptions에서 window 변수에 대해 아래와 같이 설정해도 됩니다.

if #available(iOS 13.0, *) {
    self.window?.overrideUserInterfaceStyle = .light // 라이트모드만 지원하기
//    self.window?.overrideUserInterfaceStyle = .dark // 다크모드만 지원하기    
}



3. UIViewController

UIViewController마다 선택적으로 지원을 변경하고 싶다면 UIViewController 클래스 viewDidLoad 메서드 안에 작성합니다.

override func viewDidLoad() {
    super.viewDidLoad()
    if #available(iOS 13.0, *) {
        overrideUserInterfaceStyle = .light // 라이트모드만 지원하기
//        overrideUserInterfaceStyle = .dark  // 다크모드만 지원하기
    }
}



댓글남기기