2013-11-21 7 views
0

Я новичок в Objective-C, сегодня я пытался изменить цвет моей панели навигации, и это работает с этим кодом:Как изменить цвет фона в Панели навигации прошивки 7

appDelegate.m:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    [[UINavigationBar appearance] setBarTintColor:UIColorFromRGB(0xf4f4f4)]; 

    return YES; 
} 

Теперь я попробую изменить конкретную панель навигации ViewController, и это не сработает.

ViewController2.m:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    [[UINavigationBar appearance] setBarTintColor:UIColorFromRGB(0x363636)]; 
    self.navigationController.navigationBar.translucent = NO; 
} 

Когда я вхожу это ViewContoller его навигация цвет f4f4f4 и когда я иду другой ViewController и вернуться он меняет цвет на 363636.

Почему это не работает в первый раз? Может кто-нибудь объяснить мне это ..

(К сожалению О моем английском, и спасибо.)

+0

пожалуйста «принять» самый полезный ответ, нажав на флажок рядом с каждым ответом. – Neeku

ответ

15

при использовании

[UINavigationBar appearance] 

это меняет все NavBars. в вашем ViewController, просто сделать

[self.navigationBar setBarTintColor:UIColorFromRGB(0x363636)]; 
+0

[self.navigationController.navigationBar setTintColor: UIColorFromRGB (0x363636)]; это не работает .. – user3002217

+0

не установленTintColor но setBarTintColor для navBar – Nate

0

Используйте tintcolor свойства панели навигации, чтобы изменить цвет

2

Вы можете осуществить то, что сказал Нафанаил в -(void) viewDidLoad методы контроллера представления. Но если вы используете раскадровку, вы также можете выбрать navigation item и изменить цвет оттенка с File inspector без необходимости кода.

enter image description here

+0

У меня нет цвета оттенка в раскадровке, когда я выбираю NavigationItem. – user3002217

+0

Прости, это было плохо. Он находится в «Файловом инспекторе». Однако он изменяет цвет оттенков по всему миру. Я отредактирую свой ответ, чтобы указать правильного инспектора. Также я нашел следующую статью, в которой есть хорошее объяснение настройки «панели навигации» и «строки состояния»; вам может быть полезно: http://www.appcoda.com/customize-navigation-status-bar-ios-7/ – Neeku

0

вы можете попробовать, я изменить в моей AppDelegate цвета панели навигации, поэтому все приложение имеет тот же цвет, но я должен изменить панель навигации цвета в одном контроллере представления, так что я сделал это:

в AppDelegate

let color = UIColor(red:0.24, green:0.72, blue:0.28, alpha:1.0) 
    UINavigationBar.appearance().tintColor = UIColor.whiteColor() 
    UINavigationBar.appearance().barTintColor = color 

и в контроллере представления в viewDidLoad у меня есть это:

self.navigationController?.navigationBar.barTintColor = UIColor.blueColor() 

в viewWillDissappear это:

super.viewWillDisappear(animated) 

    let color = UIColor(red:0.24, green:0.72, blue:0.28, alpha:1.0) 
    self.navigationController?.navigationBar.barTintColor = color 

Она возвращает панель навигации цвет тот же цвет

0

Для прошивки 10 вы можете использовать barStyle как этот:

для белого бара цвета:

self.navigationController.navigationBar.barStyle = UIBarStyleBlack; 

И для черной полосы цветной:

self.navigationController.navigationBar.barStyle = UIBarStyleDefault; 

BarStyle нужно установить в ViewDidLoad для нормальной работы анимации :)

Смежные вопросы