如何集中了解iOS中UI样式(暗/亮)的变化?

如何集中了解iOS中UI样式(暗/亮)的变化?,ios,uitraitcollection,ios-darkmode,Ios,Uitraitcollection,Ios Darkmode,我有一个iOS应用程序,在iOS 13本机推出之前,它有自己的主题系统(深色/浅色UI样式)。这部分是通过各种UI元素上的方法实现的,如条形按钮项、分段控件等 要将我的主题与iOS的浅色和深色样式集成,我想在系统在深色和浅色模式之间切换时自动切换我的主题。我可以通过在各种视图和视图控制器类上实现并调用自己的主题更新方法来实现这一点。但我还需要触发UIAppearance设置的更新,并且我只希望在每次系统UI样式更改时执行一次 我的问题是:我如何在一个地方集中知道iOS系统亮/暗模式何时发生了变化

我有一个iOS应用程序,在iOS 13本机推出之前,它有自己的主题系统(深色/浅色UI样式)。这部分是通过各种UI元素上的方法实现的,如条形按钮项、分段控件等

要将我的主题与iOS的浅色和深色样式集成,我想在系统在深色和浅色模式之间切换时自动切换我的主题。我可以通过在各种视图和视图控制器类上实现并调用自己的主题更新方法来实现这一点。但我还需要触发UIAppearance设置的更新,并且我只希望在每次系统UI样式更改时执行一次

我的问题是:我如何在一个地方集中知道iOS系统亮/暗模式何时发生了变化?我希望它的颜色和外观相当。这也意味着在任何地方实现
traitCollectionDidChange
的重复性都会减少


我可以在根视图控制器中的
traitCollectionDidChange
上触发它,但一旦我实现了对iPadOS的多场景支持,我就不再有一个真正的“根”视图控制器了。

您是否尝试过使用
UIAppearance
方法,或者给定了一个
userInterfaceStyle
设置为亮或暗的特征集合?然后你可以设置你的<代码>UIAppearance的明暗变化,一次,在前面。@KurtRevis是的,我现在正在试验-这可能会解决这个问题背后的原因。但是得到一个关于变更的通知仍然可以简化事情。我的处境和你完全一样@TomHamming你找到解决办法了吗?