在“更多”部分的“编辑”屏幕上更改导航栏颜色

时间:2010-07-21 15:33:33

标签: iphone objective-c cocoa-touch uinavigationcontroller uitabbarcontroller

我可以通过以下方式更改More navigationcontroller的导航栏颜色:

stTabBarController.moreNavigationController.navigationBar.tintColor = [UIColor colorWithRed:(102.0/255.0) green:(20.0/255.0) blue:(11.0/255.0) alpha:1];

但是当我单击“编辑”按钮时,将出现“配置”屏幕,导航栏颜色为默认蓝色。如何更改此颜色?

3 个答案:

答案 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];
       }
   }
}