Question

I've been developed an app for iOS7 which has this design

enter image description here

As you can see there's a blue arrow for all my BackButton (using UINavigationController and segues), I want to make them red, this is my code:

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

but results only applies to all other buttons, any help I'll appreciate

thanks in advance for the support

Was it helpful?

Solution

The tint color property of a navigation bar determines the color of the text of its bar button items in iOS 7. The code you are looking for is something like this:

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

and, of course, replacing [UIColor redColor] with whatever color you want.

OTHER TIPS

Put this code in your App Delegate:

Objective-C

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

Swift

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

If you don't want to change the tint colour in the whole app and just want to do it on one navigation bar, do this:

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

If you want the swift version.

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

Also, if you want to apply this style to all your navigation view controllers. Put that code in your application didFinishLaunchingWithOptions method in your AppDelegate

Swift:

self.navigationController?.navigationBar.tintColor = UIColor.grayColor()
  • If you're using storyboard, then you've to add a user defined attribute for keyPath 'tintColor' under the class inspector pane.
  • Because the static tintColor property was removed in latest version of Interface builder. click '+', add tintColor in KeyPath, set the Type color and add your color.

You can set it in IB directly:

enter image description here

-(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]];
}
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top