Изменение цвета панели навигации на экране редактирования раздела «Дополнительно» - PullRequest
1 голос
/ 21 июля 2010

Я могу изменить цвет панели навигации на дополнительном навигационном контроллере с помощью:

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

, но когда я нажимаю кнопку «Изменить», появляется экран «Настройка», и цвет панели навигации по умолчанию является синим.Как я могу изменить этот цвет?

Ответы [ 3 ]

2 голосов
/ 24 июля 2010

Решено:

#pragma mark UITabBarControllerDelegate
- (void)tabBarController:(UITabBarController *)controller willBeginCustomizingViewControllers:(NSArray *)viewControllers {
    UIView *editViews = [controller.view.subviews objectAtIndex:1];
    UINavigationBar *editModalNavBar = [editViews.subviews objectAtIndex:0];

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

}
0 голосов
/ 23 марта 2015

@ Решение 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];
       }
   }
}
0 голосов
/ 18 февраля 2011

Для всех, у кого есть этот вопрос, для того, чтобы решение Шихана Алама работало, вам нужно убедиться, что вы установили делегата tabBarController на self в методе viewDidLoad, например:

- (void)viewDidLoad {
  ...
  self.delegate = self;
  ...
}

Затем необходимо убедиться, что ваш tabBarController соответствует протоколу UITabBarControllerDelegate, например:

@interface TabBarController : UITabBarController <UITabBarControllerDelegate> {
  ...
} 

В противном случае переопределенный метод не будет вызван.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...