【问题标题】:Navigation Bar back button text colour reverts to default导航栏后退按钮文本颜色恢复为默认值
【发布时间】:2014-10-19 00:31:16
【问题描述】:

我的应用中有一些代码可以更改导航栏字体的颜色。问题是,虽然我一直在开发代码,但我一直在添加代码来执行此操作,但我没有检查过我真正需要哪些部分。我想知道这是否会导致我一直遇到的问题。

基本上,偶尔(我还没有弄清楚具体原因是什么)当我打开应用程序时,后退按钮文本的颜色会恢复为默认的蓝色。

这是我的代码:

override func awakeFromNib() {
    var attributes = [NSForegroundColorAttributeName: UIColor.whiteColor(),NSFontAttributeName: UIFont(name: "Avenir", size: 24)]
    self.navigationController?.navigationBar.titleTextAttributes = attributes

    let appearanceTab = UITabBarItem.appearance()
    let appearanceNav = UINavigationBar.appearance()

    let attributesTabBar = [NSFontAttributeName:UIFont(name: "Avenir", size: 11)]
    appearanceTab.setTitleTextAttributes(attributesTabBar, forState: .Normal)

    appearanceNav.titleTextAttributes = [NSFontAttributeName:UIFont(name: "Avenir", size: 25)]
}

override func viewDidLoad() {
    super.viewDidLoad()

    self.navigationController?.navigationBar.barTintColor = UIColorFromRGB(0x009051)
    UINavigationBar.appearance().barTintColor = UIColorFromRGB(0x009051)
    UINavigationBar.appearance().tintColor = UIColor.whiteColor()
    UITabBar.appearance().tintColor = UIColor.newBlueColor()
}

我已尝试删除代码的不同部分,但无法确定问题所在。有什么想法吗?

【问题讨论】:

    标签: ios xcode swift uinavigationbar uifont


    【解决方案1】:

    AppDelegate.swift

    中的 didFinishLaunchingWithOptions 函数中添加以下代码
    var navigationBarAppearace = UINavigationBar.appearance()
    
    navigationBarAppearace.tintColor = uicolorFromHex(0xffffff) // White color
    navigationBarAppearace.barTintColor = uicolorFromHex(0x034517) // Green shade
    
    // change navigation item title color
    navigationBarAppearace.titleTextAttributes =[NSForegroundColorAttributeName:UIColor.whiteColor()]
    

    【讨论】:

    • 这不会改变返回按钮的颜色,它保持默认颜色。我们还有其他解决方案吗?
    • 对于“设置后退按钮颜色的解决方案”,我们需要添加>>“UIBarButtonItem.appearance().setTitleTextAttributes([NSForegroundColorAttributeName:UIColor.whiteColor()],forState:UIControlState.Normal)”
    【解决方案2】:

    我曾经给别人一个解决方案,我保存了代码。就这样玩吧。

    var attributes = [NSForegroundColorAttributeName: UIColor.greenColor(),NSFontAttributeName: UIFont(name: "Avenir", size: 30)]
            self.navigationController?.navigationBar.titleTextAttributes = attributes
    

    【讨论】:

    • 这实际上是我在第一行的代码。它正常工作得很好,但无论出于何种原因,它有时似乎被覆盖/不起作用,我不确定其他一些代码是否与它冲突?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多