2015-06-23 128 views
0

假设,我们有两个视图控制器 - 控制器A和控制器B不同的导航栏后退按钮颜色不同的视图控制器

攻上控制器A特定项目的推动器B.我设置的颜色在我AppDelegate.mdidFinishLaunchingWithOptions方法导航栏按钮使用此 -

[[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]]; 
    

    *约踩住我的机器靠墙

(从我的新电脑写作)我应该用什么代码来完成这一点,我应该在哪里可以把它?

在此先感谢。

+1

请参阅以下可能会被它帮助你您的问题 [参考] [1] [1]:http:// stackoverflow。com/a/19029973/3977940 –

+0

它确实..我所做的只是把这行代码[self.navigationController.navigationBar setTintColor:[UIColor whiteColor]];在Controller B – genaks

回答

0

的代码行应该是 -

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

,并在云控制器B的viewDidAppear方法

记得把它恢复到默认的颜色在控制器B的viewDidDisappear方法,以便当你从控制器B导航时,你不会得到意想不到的结果。

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

+0

的viewDidLoad方法中,如果将它放在'viewWillAppear'方法中,它也可以工作。 – genaks

+0

嗯...把颜色恢复到默认viewDidDisappear没有完全工作,导航栏的右侧按钮仍然是白色 – genaks

0

尽量做到:

[self setNeedsStatusBarAppearanceUpdate];

更新后您的导航栏的tintColor

+0

umm ..用于更改后退按钮的颜色? – genaks

+0

对不起,我使用这种方法更新我的内容,当我进行更改时。 如果这不起作用,请尝试: self.navigationItem.leftBarButtonItem.tintColor = [UIColor whiteColor]; 例如 – AnthonyR

+0

它没有添加这行代码就工作..只是说 – genaks

相关问题