Как установить цвет панели навигации в меню настройки панели вкладок
-
05-07-2019 - |
Вопрос
удалена мертвая ссылка 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 следующим образом:
<Ол>Реализуйте этот метод:
-(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 " ;. Там вы можете выбрать различные настройки цвета и непрозрачности для контроллера панели навигации.
Ниже приведены несколько скриншотов. Надеюсь, это поможет!