【问题标题】:iOS 11 Navigation bar large title have black color when push on pop view controller推送弹出视图控制器时,iOS 11导航栏大标题为黑色
【发布时间】:2017-07-26 08:41:10
【问题描述】:

我对 iOS 11 的新导航栏有疑问。

在根视图中通过代码设置新导航:

if (@available(iOS 11.0, *)) {
    self.navigationController.navigationBar.prefersLargeTitles = YES;
    self.navigationItem.largeTitleDisplayMode = UINavigationItemLargeTitleDisplayModeAlways;
}

然后从根视图,我推到另一个视图并设置代码导航栏

if (@available(iOS 11.0, *)) {
    self.navigationItem.largeTitleDisplayMode = UINavigationItemLargeTitleDisplayModeNever;
}

效果很好。然而,当 push 和 pop 视图出现黑色时,如下图所示:

虽然我没有为导航栏设置背景,但我不知道为什么这个视图上出现黑色是我应用程序中整个屏幕的黑色。

有人对这个问题有任何想法。请给我一些解决该错误的建议。谢谢。

【问题讨论】:

  • 显示您的 AccountVC 代码
  • 这个thread有正确答案

标签: ios uinavigationcontroller ios11


【解决方案1】:

我通过在 UIViewController 类中设置导航控制器背景色解决了这个问题。

这是我使用的代码:

navigationController?.view.backgroundColor = UIColor.white

我已尝试更改故事板中的背景颜色和阴影,但似乎无法解决此问题。希望这个答案在这里仍然有用。

【讨论】:

  • 感谢您的回答。正是我想要的。是否可以使用故事板而不是代码来完成此任务?
【解决方案2】:

我在自己的应用程序中通过子类化 UINavigationController 并设置其 view.backgroundColor 解决了这个问题。

【讨论】:

  • 是的。代码在根导航处设置清晰颜色的暗影响。
  • 我同意,但是显示的颜色比您选择的颜色最深,我不知道为什么。
  • @sancho Shadows,也许吧?
【解决方案3】:

我用简单的扩展解决了这个问题

extension UINavigationController {

    @IBInspectable var backgroundColor: UIColor {
        set {
            self.view.backgroundColor = newValue;
        }
        get {
            return self.view.backgroundColor ?? UIColor.black;
        }
    }

}

您可以从情节提要更改背景颜色!

【讨论】:

    猜你喜欢
    • 2018-03-08
    • 2018-07-27
    • 2014-12-09
    • 1970-01-01
    • 2017-07-25
    • 1970-01-01
    • 2018-04-14
    • 2019-12-13
    • 2017-02-11
    相关资源
    最近更新 更多