1

我试图在用户导航到不同的页面时更改UINavigationBar的颜色。但是,我的应用程序不会更改UINavigationBar的颜色,直到用户退出页面并再次返回页面。我试着把初始化代码改为-(void)viewDidLoad-(void)viewWillAppear:(BOOL)animated。这里是我当前如何试图改变颜色:UINavigationBar不立即更新颜色

-(void)viewWillAppear:(BOOL)animated{ 
    [[UINavigationBar appearance] setBarTintColor:[UIColor colorWithRed:0.32f green:0.14f blue:0.32f alpha:1.00f]]; 
} 
+1

您的代码更改了所有“UINavigationBar”实例的标题栏颜色。它是应用程序范围的代理。如果您需要在一个地方更改它,则不需要使用它。 – sha 2014-11-05 23:55:59

回答

1

你应该使用类似的东西:

-(void)viewWillAppear:(BOOL)animated{ 
    [self.navigationController.navigationBar setBarTintColor:[UIColor colorWithRed:0.32f green:0.14f blue:0.32f alpha:1.00f]]; 
} 

该代码,你对所有UINavigationBar情况下改变标题栏的颜色。它是应用程序范围的代理。如果您需要在一个地方更改它,则不需要使用它。

+0

我收到的错误是,UINavigationItem没有'setBarTintColor'的界面 – Prad 2014-11-06 00:20:37

+0

没关系,我只是改变了'navigationItem'为'navigationBar' – Prad 2014-11-06 00:25:58

+0

对,我从内存中输入内容。更新了答案。 – sha 2014-11-06 00:43:43