ios - 当滑回根 viewController 时,大导航栏背景会变得清晰

标签 ios swift uinavigationcontroller uinavigationbar

我已经使用了 largeNavigationBar 并且在我滑回 Root View Controller 并且大型导航以令人讨厌的方式获得清晰颜色之前一切正常。这是代码:

func largeNavigationTitle() {
   
    self.navigationController?.view.backgroundColor = VVUtility.navigationBarColor()
    let productTitle = request?.product?.name
    self.navigationItem.title = "\(productTitle ?? " ")".localized()
    self.navigationController?.navigationBar.titleTextAttributes = [NSAttributedStringKey.foregroundColor : UIColor.white, NSAttributedStringKey.font : VVUtility.normalFontWithPlusSize(increaseSize: -2.0)]
    
    if #available(iOS 11.0, *) {
        self.navigationController?.navigationBar.prefersLargeTitles = true
        self.navigationController?.navigationBar.backgroundColor = VVUtility.splashBackGroundColor()
        self.navigationController?.navigationBar.largeTitleTextAttributes = [NSAttributedStringKey.foregroundColor : UIColor.white, NSAttributedStringKey.font : VVUtility.normalFontWithPlusSize(increaseSize: 0.0)]
    } else {
        // Fallback on earlier versions
    }
    
}

我在 viewWillAppearviewDidLoad 中调用了 largeNavigationTitle()

更新

这是两种状态的截图:

刷卡前:imgur.com/a/ZcSOrov

滑动时:imgur.com/a/DYeeot8

最佳答案

试试这个。它应该将 Root View Controller 的导航栏颜色设置为您想要的颜色:

func largeNavigationTitle() {

    self.navigationController?.view.backgroundColor = VVUtility.navigationBarColor()
   //add the two lines below
    self.navigationController?.navigationBar.barTintColor = VVUtility.navigationBarColor()
    self.navigationController?.navigationBar.isTranslucent = false

    let productTitle = request?.product?.name
    self.navigationItem.title = "\(productTitle ?? " ")".localized()
    self.navigationController?.navigationBar.titleTextAttributes = [NSAttributedStringKey.foregroundColor : UIColor.white, NSAttributedStringKey.font : VVUtility.normalFontWithPlusSize(increaseSize: -2.0)]

    if #available(iOS 11.0, *) {
        self.navigationController?.navigationBar.prefersLargeTitles = true
        self.navigationController?.navigationBar.backgroundColor = VVUtility.splashBackGroundColor()
        self.navigationController?.navigationBar.largeTitleTextAttributes = [NSAttributedStringKey.foregroundColor : UIColor.white, NSAttributedStringKey.font : VVUtility.normalFontWithPlusSize(increaseSize: 0.0)]
    } else {
        // Fallback on earlier versions
    }

}

关于ios - 当滑回根 viewController 时,大导航栏背景会变得清晰,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50462543/

相关文章:

ios - 标签栏 Controller : Going Tab-To-Tab - fatal error: Array index out of range

ios - 如何在 Ios 中使用 SDWebImage 在 PageViewController 中加载 url 图片

javascript - Mobile Safari、jQuery 和绑定(bind)到 future 的 DOM 元素

javascript - Swift 接收 JavaScript 消息不起作用

swift - 如何从命令行编译 Swift

iphone - 自定义 UIBarButtonItem 的事件区域更小

ios - Storyboard导航 Controller 和标签栏 Controller

iphone - UITextview dataDetectorTypeAddress - 在不同应用程序中打开的 map

不抛出方法的 Swift 错误处理

ios - 导航 Controller 始终为零