Как установить цвет панели навигации в меню настройки панели вкладок - PullRequest
31 голосов
/ 10 сентября 2009

удалена мертвая ссылка ImageShack

Как вы видите, представление, которое мне нужно изменить, - это предоставленное представление для настройки порядка вкладок. Я хочу изменить цвет панели навигации (отображая «Konfigurieren», что означает «Настроить»), я уже узнал, как изменить цвет контроллера «Еще», но не этот. Кто-нибудь может мне помочь с этим?

Ответы [ 8 ]

20 голосов
/ 14 сентября 2009

Я думаю, что вы ищете это (чтобы сделать, когда вы создаете свой контроллер навигации, как правило, в делегате приложения):

UINavigationController *navigationController;
...
navigationController.navigationBar.tintColor = [UIColor blackColor];
15 голосов
/ 02 июня 2010

Использовать int AppDelegate

tabBarController.moreNavigationController.navigationBar.tintColor = [UIColor blackColor];
14 голосов
/ 27 августа 2010

Это точно сработает! :-)

self.navigationController.navigationBar.tintColor  = [UIColor blackColor];
12 голосов
/ 10 декабря 2010

Может быть проще (использовать в панели вкладок делегата):

- (void)tabBarController:(UITabBarController *)tabBarController willBeginCustomizingViewControllers:(NSArray *)viewControllers {
id modalViewCtrl = [[[tabBarController view] subviews] objectAtIndex:1];  
if([modalViewCtrl isKindOfClass:NSClassFromString(@"UITabBarCustomizeView")] == YES)
    ((UINavigationBar*)[[modalViewCtrl subviews] objectAtIndex:0]).tintColor = [UIColor redColor];
}
7 голосов
/ 02 апреля 2013

Существует простой способ изменить все стили панели навигации вместо того, чтобы менять каждый отдельно.

[[UINavigationBar appearance] setBarStyle:UIBarStyleBlack];

Просто установите этот код в одном из ваших начальных представлений. С этим ваш дополнительный контроллер навигации и контроллер навигации конфигурации (который появляется после нажатия «Изменить» в дополнительном контроллере навигации) получают другой стиль.

Таким образом, вы можете изменить его цвет на другой или изменить фоновое изображение.

Надеюсь, это поможет.

3 голосов
/ 31 октября 2010

Мне удалось изменить цвет Configure NavBar следующим образом:

  1. Создать новый класс, который наследуется от UITabBarController.
  2. Реализовать этот метод:

    -(void)beginCustomizingTabBar:(id)sender
    {
        [super beginCustomizingTabBar:sender];
    
        // Get the new view inserted by the method called above
        id modalViewCtrl = [[[self view] subviews] objectAtIndex:1];
    
        if([modalViewCtrl isKindOfClass:NSClassFromString(@"UITabBarCustomizeView")] == YES)
        {
            UINavigationBar* navBar = [[modalViewCtrl subviews] objectAtIndex:0];
    
            [navBar setBarStyle:UIBarStyleBlackTranslucent];
            [navBar setTranslucent:YES];
        }
    }
    
2 голосов
/ 29 апреля 2011

На основе ответа, данного пользователем 486217, это может быть еще более защитно:

id modalViewCtrl = [controller.view.subviews objectAtIndex:1];  
if([modalViewCtrl isKindOfClass:NSClassFromStrin(@"UITabBarCustomizeView")] == YES) {
    id navigationBar = [[modalViewCtrl subviews] objectAtIndex:0];
    if ([navigationBar isKindOfClass:[UINavigationBar class]]) {
        ((UINavigationBar*)navigationBar).tintColor = [UIColor redColor];
    }
}}
1 голос
/ 23 сентября 2013

Если вы ищете стандартные цвета (серый, черный, белый), вы можете установить эти значения в xCode 5. Выберите весь контроллер вида и инспектор атрибутов. Под атрибутами вы найдете раскрывающийся список рядом с "Top Bar". Там вы можете выбрать различные настройки цвета и непрозрачности для контроллера панели навигации.

Ниже приведены несколько скриншотов. Надеюсь, это поможет!

enter image description here

enter image description here

...