Ответ 1
Использовать int AppDelegate
tabBarController.moreNavigationController.navigationBar.tintColor = [UIColor blackColor];
удалена мертвая ссылка ImageShack
Как вы можете видеть, мне нужно изменить представление, это предоставленное представление для настройки порядка вкладок. Я хочу изменить цвет панели навигации (отображение "Konfigurieren", что означает "Configure" ), я уже выяснил, как изменить цвет "Больше" -Навигационный контроллер, но не этот. Может ли кто-нибудь помочь мне в этом?
Использовать 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. Выберите весь контроллер просмотра и выберите инспектор атрибутов. По атрибутам вы найдете раскрывающийся список рядом с "Верхняя панель". Там вы можете выбрать различные настройки для цвета и непрозрачности для контроллера навигационной панели.
Ниже приведены несколько скриншотов. Надеюсь, это поможет!