提问人:CristianMoisei 提问时间:8/16/2023 更新时间:8/16/2023 访问量:124
如何检测系统在 Swift 中何时更改深色/浅色模式?
How can I detect when the system changes dark/light mode in Swift?
问:
我知道有很多答案指向 traitCollectionDidChange,但是当视图控制器的 userInterfaceStyle 更改时将调用它,并且我想让用户在系统、浅色和深色模式之间进行选择,所以我正在覆盖我的视图控制器的 userInterfaceStyle 并转到设备的设置并打开深色/浅色模式不会调用 traitCollectionDidChange。有没有其他方法可以解决这个问题?我做错了吗?
当应用程序启动时,我可以检查 UIScreen.main.traitCollection.userInterfaceStyle,因此,如果有某种方法可以观察此属性的更改或使用通知,则可以这样做。但同样,也许我的做法是错误的,所以我将不胜感激任何建议。
答:
-1赞
ProtocolGuy
8/16/2023
#1
您实际上可以使用以下方法,例如在您的中观察有关主题的变化。UIViewController
willTransition(to newCollection: UITraitCollection, with coordinator: UIViewControllerTransitionCoordinator)
评论
0赞
CristianMoisei
8/16/2023
谢谢,但恐怕这也不会被调用。所以我的根 vc 实现了下面的所有功能,然后如果我进入系统设置并从深色更改为浅色,它们都不会被调用,因为这个 vc 的特征被覆盖了,所以就它而言没有任何变化。ibb.co/c2NVRym
评论