不同视图控制器的不同导航栏后退按钮颜色

时间:2015-06-23 07:39:24

标签: ios objective-c

假设我们有两个视图控制器 - 控制器A和控制器B.

点击控制器A上的特定项目会推动控制器B.我使用此设置didFinishLaunchingWithOptions中的AppDelegate.m方法设置导航栏按钮的颜色 -

[[UINavigationBar appearance] setTintColor:[UIColor blueColor]];

适用于我应用中的每个导航控制器。我想要的是,控制器A中导航栏上的按钮颜色不同,控制器B中的颜色颜色不同。

这可能吗?

到目前为止我的尝试......

  1. 将此代码放入控制器A中推送控制器B的方法 -

    [[UIBarButtonItem appearance] setTintColor:[UIColor whiteColor]];
    

    不行。

  2. 这是控制器B的viewWillAppear方法 -

    [[UINavigationBar appearance] setTintColor:[UIColor whiteColor]];
    

    没有

    self.navigationItem.backBarButtonItem.tintColor = [UIColor whiteColor];
    

    仍然没有变化。

    [[UINavigationBar appearance] setTintColor:[UIColor whiteColor]];
    

    *即将把我的机器撞到墙上

  3. (从我的新电脑写) 我应该用什么代码来完成这个,我应该把它放在哪里?

    提前致谢。

2 个答案:

答案 0 :(得分:0)

代码行应为 -

[self.navigationController.navigationBar setTintColor:[UIColor whiteColor]];

并且它采用Controller B的viewDidAppear方法。

请记住在控制器B的viewDidDisappear方法中将其恢复为默认颜色,因此当您从控制器B导航时,不会出现意外结果。

(也许新电脑给我带来了一些运气)

答案 1 :(得分:0)

尝试:

[self setNeedsStatusBarAppearanceUpdate];

更新导航栏的tintColor后