iosuinavigationbarbartintcolor

I can't set UINavigationBar's barTintColor to clearColor successfully


There's a strange iOS 7 thing about UINavigationBar. If you try to set it's barTintColor property to [UIColor clearColor] or any color with a alpha = 0, it totally ignores that value. So for instance, if you write:

[[navigationBar setBarTintColor:[UIColor clearColor]];

It doesn't respect the "clear" part at all. Same result with colorWithRed:green:blue:alpha.

But the most interesting part is, if you set translucent property to NO, then it will take the color you specified BUT with alpha 1. So if I specify colorWithRed:1 green:0 blue:0 alpha:0 it will be set to pure red with alpha as 1.

How can I achieve it? Is there any possible solution to make it a completely invisible barTintColor, although it requires hacky methods?


Solution

  • If you want a clear navigation controller try setting the background image of the navigation controller to use a clear PNG file (1x1 transparent, no color).