【问题标题】:how to change backbutton color iOS7如何更改返回按钮颜色 iOS 7
【发布时间】:2013-10-17 03:06:13
【问题描述】:

我已经为 iOS7 开发了一个具有这种设计的应用程序

你可以看到我所有的 BackButton 都有一个蓝色箭头(使用 UINavigationController 和 segues),我想让它们变成红色,这是我的代码:

[UIBarButtonItem   appearance]setTintColor:(UIColorFromRGB(toolbarTintColor))];
[[UIBarButtonItem  appearance]setTitleTextAttributes:textAtributesDictionaryNavBarButtons forState:UIControlStateNormal];

但结果仅适用于所有其他按钮,如有任何帮助,我将不胜感激

提前感谢您的支持

【问题讨论】:

    标签: ios ios7 xcode5 back-button


    【解决方案1】:

    导航栏的 tint color 属性决定了 iOS 7 中其栏按钮项的文本颜色。您要查找的代码是这样的:

    [[UINavigationBar appearance] setTintColor:[UIColor redColor]];
    

    当然,用你想要的任何颜色替换[UIColor redColor]

    【讨论】:

    • tintColor 属性没有 UI_APPEARANCE_SELECTOR 所以我认为这个解决方案可能不可靠。 Enrico Susatyo 的答案似乎是正确的。
    • 不知何故这适用于我的 iOS 8 (8.1),但不适用于 iOS 7。只有文本颜色发生变化,而不是
    【解决方案2】:

    将此代码放入您的 App Delegate 中:

    Objective-C

    [self.window setTintColor:[UIColor redColor]];
    

    斯威夫特

    self.window?.tintColor = UIColor.redColor()
    

    【讨论】:

    • 这是一个更好的答案,因为它建议在 AppDelegate.m 中自定义导航文本。
    • 但我不想更改标签栏的文本颜色
    【解决方案3】:

    如果您不想更改整个应用中的色调颜色,而只想在一个导航栏上执行此操作,请执行以下操作:

    self.navigationController.navigationBar.tintColor = [UIColor redColor];
    

    【讨论】:

      【解决方案4】:

      斯威夫特:

      self.navigationController?.navigationBar.tintColor = UIColor.grayColor()
      

      【讨论】:

        【解决方案5】:

        如果你想要 swift 版本。

        UINavigationBar.appearance().tintColor = UIColor.whiteColor()
        

        此外,如果您想将此样式应用于所有导航视图控制器。将该代码放入 AppDelegate 中的应用程序 didFinishLaunchingWithOptions 方法中

        【讨论】:

          【解决方案6】:
          • 如果您使用情节提要,则必须在类检查器窗格下为 keyPath 'tintColor' 添加用户定义的属性。
          • 因为在最新版本的界面生成器中删除了静态 tintColor 属性。

          【讨论】:

            【解决方案7】:
            -(void)viewDidAppear:(BOOL)animated
            {
               //set back button color
                [[UIBarButtonItem appearanceWhenContainedIn:[UINavigationBar class], nil] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIColor redColor], NSForegroundColorAttributeName,nil] forState:UIControlStateNormal];
                //set back button arrow color
                [self.navigationController.navigationBar setTintColor:[UIColor whiteColor]];
            }
            

            【讨论】:

              【解决方案8】:

              可以直接在IB中设置:

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2014-04-07
                • 2014-10-03
                • 1970-01-01
                相关资源
                最近更新 更多