As you can see the view I need to change is the provided view to customize the tabbar order. I want to change the color of the navigation bar (displaying "Konfigurieren" which means "Configure"), I already found out how to change the color of the "More"-Navigation Controller, but not this one. Can anybody help me with that?
Use int AppDelegate
ReplyDeletetabBarController.moreNavigationController.navigationBar.tintColor = [UIColor blackColor];
I think what you are looking for is this (to do when you create your navigation controller, typically in your app delegate):
ReplyDeleteUINavigationController *navigationController;
...
navigationController.navigationBar.tintColor = [UIColor blackColor];
Can be easier (use in tab bar delegate):
ReplyDelete- (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];
}
Its Surely gonna work! :-)
ReplyDeleteself.navigationController.navigationBar.tintColor = [UIColor blackColor];
Building off of the answer given by user486217, this may be even more defensively-coded:
ReplyDeleteid 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];
}
}}
I was able to change the color of the Configure NavBar like this:
ReplyDeleteCreate a new class that inherits from UITabBarController.
Implement this method:
-(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];
}
}