UINavigationBarの外観を次の行で設定しました。
UIImage *navigationBarBackground = [UIImage imageNamed:@"HeaderNavBar.png"];
[[UINavigationBar appearance] setBackgroundImage:navigationBarBackground forBarMetrics:UIBarMetricsDefault];
次の行で削除します。
[[UINavigationBar appearance] setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];
これは、iOS 5.1を除くすべてのiOSで機能します...誰かが理由を知っていますか?!