iPhone设置背栏按钮项目的色调颜色

use*_*452 18 iphone xcode uibarbuttonitem backbarbuttonitem

我试图在导航控制器中设置后退按钮的色调颜色,但没有任何工作.我试过了

[self.navigationController.backBarButtonItem setTintColor:myColor];
//myColor was previously set
Run Code Online (Sandbox Code Playgroud)

但它保持默认色调

Qim*_*ing 36

我相信barButtonItem是只读的.(我对此不太确定,如果我错了,有人会纠正我)

要为这些按钮添加色调,这就是我要做的:

在您的App Delegate中,添加以下代码行:

UIBarButtonItem *barButtonAppearance = [UIBarButtonItem appearance];
[barButtonAppearance setTintColor:[UIColor redColor]]; // Change to your colour
Run Code Online (Sandbox Code Playgroud)

第一行设置了一个外观代理,所以我相信这也有效,如果你喜欢更少的代码:

[[UIBarButtonItem appearance] setTintColor:[UIColor redColor]];
Run Code Online (Sandbox Code Playgroud)

我希望这对你有用!(这会更改UIBarButtonItem的所有实例)

  • 这就是我一直在做的事情,但是相同的视图控制器可以调出Mail Composer View Controller,它会改变那里按钮的颜色,这违背了该控制器的无定制规则. (2认同)

Dee*_*egi 32

您无法直接更改UINavigationItem的色调颜色.您必须更改导航栏的色调颜色,并且栏按钮将自动更改其颜色.

在viewWillAppear方法中添加这些行

[[self.navigationController navigationBar] tintColor] = [UIColor myColor];
Run Code Online (Sandbox Code Playgroud)

或者您可以创建自定义按钮并将UIBarButtonItem初始化为

UIBarButtonItem *barButtonItem = [[UIBarButtonItem alloc] initWithCustomView:yourUIButton];
Run Code Online (Sandbox Code Playgroud)

  • 这个工作在7!非常感谢! (3认同)
  • Yeeeeep!使用iOS 7,谢谢!:d (2认同)

小智 25

这对我有用.

[self.navigationController.navigationBar setTintColor:[UIColor redColor]];
Run Code Online (Sandbox Code Playgroud)

它与第二个答案非常相似......