UINavigationBar 不立即更新颜色

Posted

技术标签:

【中文标题】UINavigationBar 不立即更新颜色【英文标题】:UINavigationBar not updating Color immediately 【发布时间】:2014-11-05 23:54:10 【问题描述】:

当用户导航到不同的页面时,我正在尝试更改 UINavigationBar 的颜色。但是,我的应用程序不会更改 UINavigationBar 的颜色,直到用户退出页面并再次返回页面。我尝试将用于更改颜色的初始化代码放入-(void)viewDidLoad-(void)viewWillAppear:(BOOL)animated。以下是我目前尝试更改颜色的方式:

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

【问题讨论】:

您的代码更改了所有 UINavigationBar 实例的标题栏颜色。它是应用程序范围的代理。如果您只需要在一个地方更改它,您就不想使用它。 【参考方案1】:

你应该使用类似的东西:

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

您拥有的代码会更改所有 UINavigationBar 实例的标题栏颜色。它是应用程序范围的代理。如果您只需要在一个地方更改它,您就不想使用它。

【讨论】:

我收到的错误是 UINavigationItem 没有setBarTintColor的接口 没关系,我只是把navigationItem改成了navigationBar 对,我是凭记忆打字的。更新了答案。

以上是关于UINavigationBar 不立即更新颜色的主要内容,如果未能解决你的问题,请参考以下文章