【发布时间】:2018-04-26 08:31:59
【问题描述】:
我使用UINavigationController 来显示一些视图控制器。每次在两个视图控制器之间切换时,我都需要更改导航栏标题的颜色。这就是我现在正在做的事情:
第一个视图控制器
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
self.navigationController.navigationBar.titleTextAttributes =
@{
NSForegroundColorAttributeName: [UIColor whiteColor],
NSFontAttributeName: [UIFont systemFontOfSize:14.0]
};
}
第二个视图控制器
- (void)viewDidLoad:(BOOL)animated
{
[super viewDidLoad:animated];
self.navigationController.navigationBar.titleTextAttributes =
@{
NSForegroundColorAttributeName: [UIColor blackColor],
NSFontAttributeName: [UIFont systemFontOfSize:14.0]
};
}
第一次加载 First VC 时,当我按下 Second VC 时,标题颜色处理正确。这里的问题是,当我从第二个视图控制器弹出到第一个视图控制器时,标题仍然是黑色的,即使 viewWillAppear 被正确调用,如果我打印 self.navigationController.navigationBar.titleTextAttributes,值似乎会更新(NSForegroundColorAttributeName 是白色的)。
【问题讨论】:
-
你试过viewdidAppear中的代码吗?
-
@PiyushSinroja 是的,没什么不同
标签: ios uinavigationcontroller uinavigationbar