1个单独的导航控制器内有不同的导航栏色调?

时间:2010-06-24 13:22:25

标签: iphone uinavigationcontroller uinavigationbar hierarchy tintcolor

我的应用程序有一个导航视图控制器,有2个视图:
- 根视图:我希望其导航栏的色调颜色为黑色 - 子视图:我希望其导航栏的色调颜色为蓝色

为此,我在每个视图控制器的viewDidLoad方法中设置导航栏的色调颜色: self.navigationController.navigationBar.tintColor = [UIColor blackColor];

我的问题是在测试期间:
- 步骤1 - 我访问根视图:导航栏为黑色:确定
- 步骤2 - 我推动子视图:导航栏为蓝色:确定
- 步骤3 - 我点击子视图的“后退”按钮:导航保持蓝色:KO

我是否应添加任何添加代码以获取我想要的行为? (我尝试过一些肮脏的解决方法,比如在viewWillAppear中调用drawRect但它不起作用)

感谢您的帮助!

2 个答案:

答案 0 :(得分:2)

您应该可以在self.navigationController.navigationBar.tintColor = [UIColor blackColor];viewWillAppear

中执行viewDidAppear

答案 1 :(得分:0)

原因是navigationController是共享的。因此,当您将其颜色更改为蓝色时,您必须将其更改回黑色。

最好的方式就像Elfred说的那样,你应该在viewWillAppear中做到这一点