Я сейчас обновляю свое приложение до 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;
}
}
Там нет ошибки или предупреждения Любые идеи?
Ваша проблема в том, что вы не можете изменить планку на черный полупрозрачный в ios6? – KudoCC
Сначала я бы избавился от '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
Thanx , решение ниже отлично работает. Итак, решил. – A3O