Вы можете установить его глобально с помощью прокси внешнего вида класса или установить его для экземпляра navBar.
В настоящее время я устанавливаю фон для экземпляра навигационной панели, и, похоже, он работает. У меня есть два разных navBars с различным фоном. Если вы установите его для экземпляра, вы должны быть в состоянии обусловить код.
UINavigationController *myNavController = [[UINavigationController alloc] initWithRootViewController:myView];
[viewControllers addObject:myNavController];
// not supported on iOS4
UINavigationBar *navBar = [myNavController navigationBar];
if ([navBar respondsToSelector:@selector(setBackgroundImage:forBarMetrics:)])
{
// right here, you could condition bg image based on properties of this instance
// of the navBar or any other condition.
[navBar setBackgroundImage:[UIImage imageNamed:@"bg.jpg"] forBarMetrics:UIBarMetricsDefault];
}
Если вы хотите установить с помощью метода класса, вы можете установить для всех:
[[UINavigationBar appearance] setBackground ...
Я признаю, что это довольно ново, и я просто выясняю это, как и большинство людей.