我有一个具有以下视图架构的应用程序:
UITabBarController > UISplitViewController > UINavigationController > UIViewController
\
> UINavigationController > UIViewController
每当我将嵌入在导航控制器中的视图控制器作为详细视图推送时,我会在主导航栏后面看到一个奇怪的异色视图。当我的应用处于明暗模式时会发生这种情况,如下面的屏幕截图所示。
我在测试应用程序中重新创建了相同的视图架构,我没有看到出现的异色视图,所以我不确定是什么导致它。
以下是我用来创建亮/暗模式的一些代码:
extension UINavigationBar: RMDThemeable {
func render(for theme: RMDTheme) {
switch theme {
case .light:
barStyle = .default
case .dark:
barStyle = .black
}
}
}
class RMDCollectionViewController: UICollectionViewController {
func render(for theme: RMDTheme) {
switch theme {
case .light:
collectionView?.backgroundColor = UIColor.baseBackgroundLight
case .dark:
collectionView?.backgroundColor = UIColor.baseBackgroundDark
}
}
}
以下是奇怪颜色的截图:
这是视图调试器:
答案 0 :(得分:0)
您好像没有检查translucent
的{{1}}属性,要么将值设置为UINavigationController
,要么创建具有所需颜色的自定义导航栏。
要设置false
属性,您可以转到故事板并选择导航控制器的属性检查器,顶部会有一个标记为translucent
的复选框取消选中它,或者可以在代码中完成
translucent
获取导航控制器的实例并将其设置为false。