At a glance
It seems the navigation bar simply doesn't have anymore blur effet since iOS7.1. At least I ran many tests, by doing new app sample, it doesn't have anymore.
Workaround (work on iOS 7.1)
Here a sample using FXBlurView
It's not marvelous but it works fine and it's customizable. My example is certainly not the best.
Previous solution proposed (doesn't work on iOS7.1)
Here is my solution to find back a similar effect. It is ok for release it doesn't use private API. But it can have issue with next update of iOS since it rely on inside structure of UINavigationBar
.
Simply do that in your viewDidLoad
or where ever you want since it works :
// First we make the background's navigation bar totally translucent
self.navigationController.navigationBar.barTintColor = [UIColor clearColor];
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageWithColor:[UIColor clearColor]] forBarPosition:UIBarPositionAny barMetrics:UIBarMetricsDefault];
// Then we create UIToolBar, which are still using blur effect
UIToolbar *tab = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 320, 64)];
// We add it the barTintColor we want, works the same as since iOS 7.0.3, don't forget alpha value
tab.barTintColor = [UIColor colorWithRed:0 green:1 blue:0 alpha:0.2];
// And finally we add it to the background view of UINavigationBar... but it can change with future release of iOS. Be aware !
[[self.navigationController.navigationBar.subviews firstObject] addSubview:tab];
I also advice you to use AutoLayout to constraint the UIToolBar
to be always the size of it's parent, for rotations etc... I didn't do it to let the code short and simple.
Hope it helps you guys !