3

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

为了将我的主题与 iOS 的浅色和深色风格相结合,我想在系统在深色和浅色模式之间切换时自动切换我的主题。我主要可以通过traitCollectionDidChange在各种视图和视图控制器类上实现并在 UI 样式发生更改时调用我自己的主题更新方法来完成此操作。但我还需要触发 UIAppearance 设置的更新,并且我只想在每次系统 UI 样式更改时执行一次。

我的问题:我如何在一个地方集中了解 iOS 系统的亮/暗模式何时发生变化?我希望颜色外观相当于UIContentSizeCategoryDidChangeNotification. 这也意味着traitCollectionDidChange在各处实现的重复代码更少。

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

4

0 回答 0