如何检测系统何时在 Swift 中更改暗/亮模式?

问题描述 投票:0回答:1

我知道有很多答案指向 TraitCollectionDidChange,但是当视图控制器的 userInterfaceStyle 发生变化时,将会调用它,并且我想让用户在系统、浅色和深色模式之间进行选择,所以我重写了我的视图控制器的 userInterfaceStyle 并转到设备的设置并打开暗/亮模式不会调用 TraitCollectionDidChange。还有其他方法可以处理这个问题吗?我是不是搞错了?

当应用程序启动时,我可以检查 UIScreen.main.traitCollection.userInterfaceStyle,因此如果有某种方法可以观察此属性的更改或使用通知,那就可以了。但同样,也许我的做法是错误的,所以我将不胜感激任何建议。

swift uiviewcontroller darkmode uitraitcollection uiuserinterfacestyle
1个回答
0
投票

其实你可以使用下面的方法,例如:在您的

UIViewController
中观察主题的变化。

willTransition(to newCollection: UITraitCollection, with coordinator: UIViewControllerTransitionCoordinator)
© www.soinside.com 2019 - 2024. All rights reserved.