我知道有很多答案指向 TraitCollectionDidChange,但是当视图控制器的 userInterfaceStyle 发生变化时,将会调用它,并且我想让用户在系统、浅色和深色模式之间进行选择,所以我重写了我的视图控制器的 userInterfaceStyle 并转到设备的设置并打开暗/亮模式不会调用 TraitCollectionDidChange。还有其他方法可以处理这个问题吗?我是不是搞错了?
当应用程序启动时,我可以检查 UIScreen.main.traitCollection.userInterfaceStyle,因此如果有某种方法可以观察此属性的更改或使用通知,那就可以了。但同样,也许我的做法是错误的,所以我将不胜感激任何建议。
其实你可以使用下面的方法,例如:在您的
UIViewController
中观察主题的变化。
willTransition(to newCollection: UITraitCollection, with coordinator: UIViewControllerTransitionCoordinator)