Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
5
Help us understand the problem. What are the problem?
@app_tune

【Swift】アプリ内でダークモード/ライトモードを設定したい

やりたいこと

アプリ内で、OS設定によらずライトモード/ダークモードを設定したい。

設定方法

1行加えるだけで、即時にアプリ全体に反映されます。

  • ダークモードに設定する場合
ViewController.swift
UIApplication.shared.windows.first?.overrideUserInterfaceStyle = .dark
  • ライトモードに設定する場合
ViewController.swift
UIApplication.shared.windows.first?.overrideUserInterfaceStyle = .light
  • OS設定に従う場合
ViewController.swift
UIApplication.shared.windows.first?.overrideUserInterfaceStyle = .unspecified

起動時に設定する場合は、initial view controllerの viewDidLoad() 内に書くと良いでしょう。
なお、AppDelegate内の application(_:didFinishLaunchingWithOptions:) 内に記載しても、うまく動作しません。(詳しく調べてはいませんが、おそらく、UIWindowオブジェクトがまだ構成されていないからではないかと思います。)

動作確認環境

Xcode: 12.5
iOS: 14.7.1
Swiftバージョン: Swift 5.4

以上

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
5
Help us understand the problem. What are the problem?