iOS:更改所有导航栏的self.navigationController.navigationBar.tintColor更改

时间:2016-09-16 04:46:08

标签: ios objective-c uinavigationcontroller uinavigationbar uinavigationitem

我从包含表格视图的视图控制器(比如tableC)导航到导航控制器(Say navC)。

在这个navC的rootViewController中,我使用self.navigationController.navigationBar.tintColor = [UIColor redColor]在导航栏中设置backButton的标题颜色。

当我回到tableC时,后退按钮标题颜色变为redColor。

它还会更改我之后导航的任何其他视图控制器的backButton标题颜色。

1 个答案:

答案 0 :(得分:0)

当您按下ViewController时,将其推过它的Rootviewcontroller。如果你改变任何颜色(tintColor或barColor),它也会影响Rootviewcontroller。

如果每个ViewController需要不同的颜色,请在其中设置viewWillAppear()方法。

如果您只需更改一个ViewController的条形按钮颜色,请将其设置为viewWillAppear并将其重置为viewWillDisappear中的原始颜色

e.g。 设置为红色

- (void) viewWillDisappear:(BOOL)animated
{
  self.navigationController.navigationBar.tintColor = [UIColor whiteColor]  
}

重置为白色

{{1}}