Не отображает цвет и данные в IOS 5 - PullRequest
0 голосов
/ 20 декабря 2011

Я реализовал настраиваемую панель навигации и панель инструментов в Xcode 4 для iOS 4.3 и теперь обновляю свой xcode 4.2 для iOS 5. В iOS 5 настройки не работают, но всякий раз, когда я использую симулятор iOS 4.3, он работает нормально.

Заранее спасибо

1 Ответ

2 голосов
/ 20 декабря 2011

Настраиваете ли вы панель навигации с помощью метода категории 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 будет применять внешний вид ко всем панелям навигации.

...