2013-11-10 2 views
5

Я знаю, как изменить навигации летучей оттенок цвета в IOS 6:Изменить панель навигации оттеночных цветов IOS 7.

[UINavigationBar appearance].tintColor = [UIColor colorWithRed:129/255.0 green:200/255.0 blue:244/255.0 alpha:1.0]; 

Я добавляю этот код в AppDelegate странице. Теперь я хочу сделать это в iOS 7, но выше код не работает. Я искал в сети. Я получил решение. Добавляя функцию ниже на каждую страницу, я могу изменить цвет навигации.

self.navigationController.navigationBar.barTintColor = [UIColor colorWithRed:129/255.0 green:200/255.0 blue:244/255.0 alpha:1.0]; 

Но мне нужна функция, которая может добавить функцию APPDelegate. Пожалуйста, помогите мне преодолеть эту проблему.

+0

http://stackoverflow.com/questions/18929864/how-to-change-navigation-bar-color-in-ios-7 – Rajneesh071

ответ

7

Вы можете добавить сильфона код в appdelegate.m

if your app is navigation based 

// for background color 
    [nav.navigationBar setBarTintColor:[UIColor blueColor]]; 

// for change navigation title and button color 
[[UINavigationBar appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIColor whiteColor], NSForegroundColorAttributeName, [UIFont fontWithName:@"FontNAme" size:20], NSFontAttributeName, nil]]; 

[[UINavigationBar appearance] setTintColor:[UIColor whiteColor]]; 
13

Почему бы не использовать setBarTintColor для появления прокси-сервера, вы можете сделать это:

if (floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_6_1) 
{ 
    [[UINavigationBar appearance] setTintColor: [UIColor colorWithRed:129/255.0 green:200/255.0 blue:244/255.0 alpha:1.0]]; 
} 
else 
{ 
    [[UINavigationBar appearance] setBarTintColor: [UIColor colorWithRed:129/255.0 green:200/255.0 blue:244/255.0 alpha:1.0]]; 
} 
+0

Проблема с внешним видом он носит глобальный характер. Это не работает для меня, так как после запуска этого кода вызывает множество ошибок с неправильными цветами в навигационных барах. Мне нужно установить его на фактический экземпляр. – LightningStryk

+0

Что сказал луч. Использование responsesToSelector для проверки версий может быть лучше. – user1898829

+0

Если вам нужно изменить только внешний вид текущей навигации бара вы можете использовать: 'self.navigationController.navigationBar.tintColor = [UIColor anyColor];' ' self.navigationController.navigationBar.barTintColor = [UIColor anyColor];' –

2

Использование respondsToSelector для проверки версий может быть лучше.

if ([self.navigationBar respondsToSelector:@selector(setBarTintColor:)]) { 
    [self.navigationBar setBarTintColor: [UIColor colorWithRed:129/255.0 green:200/255.0 blue:244/255.0 alpha:1.0]]; 
} else { 
    [self.navigationBar setTintColor: [UIColor colorWithRed:129/255.0 green:200/255.0 blue:244/255.0 alpha:1.0]]; 
} 
-1

Попробуйте [self.navigationController.navigationBar setTranslucent: NO];

+0

Он не хочет менять прозрачность навигационной панели –

+1

Спасибо, что сработало. –

0

В Swift для меня я хотел изменить цвет оттенка для кнопок «Отмена» и «Отправить» при появлении сообщения электронной почты. И это сработало отлично.

(UIBarButtonItem.appearanceWhenContainedInInstancesOfClasses([UINavigationBar.self])).tintColor = UIColor.whiteColor() 
Смежные вопросы