导航栏后面的UISplitView奇怪的背景

时间:2018-06-04 21:06:23

标签: ios swift uisplitviewcontroller

我有一个具有以下视图架构的应用程序:

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
        }
    }
}

以下是奇怪颜色的截图:

No weird off-colour view Weird off-colour view Weird off-colour view in white

这是视图调试器:

Screenshot with prominent grey bar View debugger of prominent grey bar

1 个答案:

答案 0 :(得分:0)

您好像没有检查translucent的{​​{1}}属性,要么将值设置为UINavigationController,要么创建具有所需颜色的自定义导航栏。

要设置false属性,您可以转到故事板并选择导航控制器的属性检查器,顶部会有一个标记为translucent的复选框取消选中它,或者可以在代码中完成

translucent
  

获取导航控制器的实例并将其设置为false。