我可以通过以下方式更改More navigationcontroller的导航栏颜色:
stTabBarController.moreNavigationController.navigationBar.tintColor = [UIColor colorWithRed:(102.0/255.0) green:(20.0/255.0) blue:(11.0/255.0) alpha:1];
但是当我单击“编辑”按钮时,将出现“配置”屏幕,导航栏颜色为默认蓝色。如何更改此颜色?
答案 0 :(得分:2)
答案 1 :(得分:0)
对于有这个问题的任何人,为了使Sheehan Alam的解决方案有效,你需要确保在viewDidLoad方法中将tabBarController的委托设置为self,如下所示:
- (void)viewDidLoad {
...
self.delegate = self;
...
}
然后你需要确保tabBarController符合UITabBarControllerDelegate协议,如下所示:
@interface TabBarController : UITabBarController <UITabBarControllerDelegate> {
...
}
否则将不会调用他覆盖的方法。
答案 2 :(得分:0)
@Sheehan Alam解决方案对我不起作用(在iOS 8上工作)。无论如何,我从他的答案中得到了2/3的解决方案。我发布这个来改善答案。
#prama mark - UITabBarControllerDelegate
- (void)tabBarController:(UITabBarController *)tabBarController willBeginCustomizingViewControllers:(NSArray *)viewControllers {
UIView *editViews = [tabBarController.view.subviews objectAtIndex:1];
for (UIView * view in [editViews subviews]) {
if ([view isKindOfClass:[UINavigationBar class]]) {
UINavigationBar *editNavBar = (UINavigationBar *)view;
editNavBar.barTintColor = [UIColor redColor];
}
}
}