我有一个基本的主要细节应用程序。根据在主列表中选择的项目,我只想在详细信息视图中设置导航栏的tintColor
。
我在细节控制器的self.navigationController.navigationBar.tintColor = detailTintColor;
中设置了这样的色调:viewWillAppear:
。
但是,这也会将主控制器导航栏的颜色更改为黄色(应保持红色),这在过渡动画期间会显示为闪烁。我假设因为只有一个导航栏实例。
这里有一个截图来说明问题:
答案 0 :(得分:2)
当视图消失时,为什么不重置为原始颜色?
-(void)viewWillDisappear:(BOOL)animated {
self.navigationController.navigationBar.tintColor = yourSavedColor;
[super viewWillDisappear:animated];
}
答案 1 :(得分:2)
您只需更改故事板中详细信息UINavigationBar
中UINavigationController
的色调颜色:
工作样本:
您可以使用UIAppearance
API通过继承UINavigationController
获取相同的结果,并将详细信息控制器设置为该自定义类。然后,使用UIAppearance API,设置UINavigationBar
色调颜色:
[[UINavigationBar appearanceWhenContainedIn:[DetailNavigationController class], nil] setTintColor:[UIColor redColor]];
答案 2 :(得分:2)
在iOS 8中,我们通过以下方式设置色彩: -
self.navigationController.navigationBar.barTintColor = [UIColor redColor];