2014-01-04 3 views
1

Я сейчас обновляю свое приложение до iOS7. Однако я хочу сохранить интерфейс iOS6. Он работает хорошо, за исключением навигационной панели. В iOS7 они отлично смотрятся (только цвет по умолчанию с полупрозрачным свойством YES. В iOS6 навигационные полосы отображаются как голубые полосы по умолчанию, и я хочу, чтобы они были черными полупрозрачными.Изменение цвета навигационной панели ios6 и ios7

Что я делаю, это проверить версию iOS, а затем выполнить некоторый код. В отладчике я вижу их правую версию в переменной vComp, но цвет не меняется. Не обращайте внимания на свойство redColor, это просто для теста. В обоих случаях мне предоставляется стандартная . цвет

Вот мой код:.

- (void) fixNavBarColor:(UINavigationBar*)bar { 
    NSArray *vComp = [[UIDevice currentDevice].systemVersion componentsSeparatedByString:@"."]; 
    if ([[vComp objectAtIndex:0] intValue] >= 7) { 
     bar.barTintColor = [UIColor redColor]; 
     bar.translucent = NO; 
    } 
    else { 
     bar.tintColor = [UIColor redColor]; 
     bar.opaque = YES; 
    } 
} 

Там нет ошибки или предупреждения Любые идеи?

+0

Ваша проблема в том, что вы не можете изменить планку на черный полупрозрачный в ios6? – KudoCC

+0

Сначала я бы избавился от 'NSArray * vComp = [[UIDevice currentDevice] .systemVersion componentsSeparatedByString: @". "];' И заменил '[[vComp objectAtIndex: 0] intValue]> = 7' только с' [[ [UIDevice currentDevice] systemVersion]> = 7' this '[[[UIDevice currentDevice] systemVersion] intValue]' будет возвращать значение как '6' или' 7' или etc не нужно делать бессмысленные 'componentsSeparatedByString:' call – Popeye

+0

Thanx , решение ниже отлично работает. Итак, решил. – A3O

ответ

2

Вы не должны установить tintColor прямо в Панель навигации, поскольку она не будет применяться к другим частям вашего приложения, вы должны вместо этого использовать внешний UINavigationBar, чтобы установить tintColor, который доступно на iOS 5.0 и далее.

[[UINavigationBar appearance] setTintColor:"Your Color"]; 
+0

Отлично работает. Я установил цвета текста и цвета ярлыков той же техникой. Спасибо – A3O

+0

Добро пожаловать !!! – ldindu

1

Используйте этот код для iOS6

[self.navigationController.navigationBar setBackgroundImage:[UIImage imageWithColor:[UIColor colorWithWhite:0 alpha:.8]] 
                forBarMetrics:UIBarMetricsDefault]; 
Смежные вопросы