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 不立即更新颜色的主要内容,如果未能解决你的问题,请参考以下文章
UINavigationBar 立即消失,而带有动画的 pushViewcontroller 为真