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

iOS: Changing self.navigationController.navigationBar.tintColor changes for all the navigation bars

我正在从包含 table 视图(比如 tableC)的视图控制器导航到导航控制器(比如 navC)。

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

当我返回 tableC 时,后退按钮标题颜色更改为红色。

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

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

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

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

中将其重置为原始颜色

例如 设置为红色

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

重置为白色

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