Настраиваете ли вы панель навигации с помощью метода категории drawRect?
Если у меня возникла такая же проблема, в IOS 5 метод drawRect не вызывается, IOS5 теперь имеет встроенные функции для настройки панели навигации.
В IOS5 есть новое свойство внешнего вида, которое можно использовать для его настройки, поэтому я проверил, существует ли свойство внешнего вида, если оно существует, вам нужно использовать новые методы внешнего вида.
Таким образом, у меня все еще есть категория drawRect, которая используется при работе на версии IOS <5, а затем в моем контроллере вида я проверяю, существует ли объект внешнего вида, если он затем настраивает панель навигации, используячто теперь он работает как для IOS 5, так и ниже: </p>
Мои методы viewDidLoad выглядят так, как показано ниже, и устанавливает фон панели навигации:
if ([self.navigationController.navigationBar respondsToSelector:@selector(appearance)]){
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"HeaderBar.png"] forBarMetrics:UIBarMetricsDefault];
}
Вы также можете установить объект Appearance длявсе навигационные панели в вашем приложении, используя следующий код:
if ([UINavigationBar respondsToSelector:@selector(appearance)]){
[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"HeaderBar.png"] forBarMetrics:UIBarMetricsDefault];
}
Приведенный выше код настраиваетПоявление в классе UINavigationBar, а не в единственном экземпляре панели навигации.Это означает, что IOS будет применять внешний вид ко всем панелям навигации.