【问题标题】:iOS: Changing self.navigationController.navigationBar.tintColor changes for all the navigation barsiOS:更改所有导航栏的 self.navigationController.navigationBar.tintColor 更改
【发布时间】:2016-09-16 04:46:08
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: ios objective-c uinavigationcontroller uinavigationbar uinavigationitem


    【解决方案1】:

    当你推送一个 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]  
    }
    

    【讨论】:

    • 谢谢 Girish。我已经用这种方法解决了这个问题。但我认为这是一种解决方法而不是具体的解决方案,因此我划伤了我的代码。
    猜你喜欢
    • 2017-02-17
    • 2020-02-04
    • 2015-11-15
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    • 2021-10-27
    • 1970-01-01
    相关资源
    最近更新 更多