It seems in iOS 6, a drop shadow is automatically added to the navigation bar even when you set a custom background image. I\'m pretty sure this wasn\'t the case with iOS 5
There are two possible solutions, the second of which is mentioned in other answers.
Implement the following code:
// Omit the conditional if minimum OS is iOS 6 or above
if ([UINavigationBar instancesRespondToSelector:@selector(setShadowImage:)]) {
[[UINavigationBar appearance] setShadowImage:[[UIImage alloc] init]];
}
Source: Advanced Appearance Customization on iOS, @27:15