Как установить цвет панели навигации в меню настройки панели вкладок

StackOverflow https://stackoverflow.com/questions/1404197

Вопрос

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

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

Это было полезно?

Решение

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

tabBarController.moreNavigationController.navigationBar.tintColor = [UIColor blackColor];

Другие советы

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

UINavigationController *navigationController;
...
navigationController.navigationBar.tintColor = [UIColor blackColor];

Конечно, это сработает! :-)

self.navigationController.navigationBar.tintColor  = [UIColor blackColor];

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

- (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];
}

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

[[UINavigationBar appearance] setBarStyle:UIBarStyleBlack];

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

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

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

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

<Ол>
  • Создайте новый класс, который наследуется от UITabBarController.
  • Реализуйте этот метод:

    -(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];
        }
    }
    
  • Если исходить из ответа, данного пользователем 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];
        }
    }}
    

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

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

    введите описание изображения здесь

    введите описание изображения здесь

    Лицензировано под: CC-BY-SA с атрибуция
    Не связан с StackOverflow
    scroll top