我有一个像这样的 UINavigationController 堆栈:
UINavigationController -> RootViewController-> OtherControllers->...
我想要 UINavigationBar 背景颜色
有什么好的方法可以完成此类工作(除了为每个控制器手动设置条形色调颜色之外)?
感谢@matt的回答。 UINavigationBarAppearance 可以为特定控制器完成这种更改栏外观的工作
但是一开始,我的代码在按照官方指南执行后无法工作:
本指南似乎具有某种误导性。 您无法将自定义外观设置为导航控制器本身。 您必须将其设置为 navigaitonItem
现在可以使用了:
UINavigationBarAppearance* appear = [UINavigationBarAppearance new];
[appear setBackgroundColor:[UIColor redColor]];
// self.navigationController.navigationBar.scrollEdgeAppearance = appear;
// self.navigationController.navigationBar.compactAppearance = appear;
// self.navigationController.navigationBar.standardAppearance = appear;
// self.navigationController.navigationBar.compactScrollEdgeAppearance = appear;
self.navigationItem.scrollEdgeAppearance = appear;
self.navigationItem.compactAppearance = appear;
self.navigationItem.standardAppearance = appear;