3

Dans ma barre de navigation i ont deux boutons à la position gauche et à droite et une vue segmentetControll à titre de navigation. Je souhaite changer la couleur d'arrière-plan de la barre de navigation en noir, mais la couleur des éléments de cette barre sera une autre couleur. comment puis-je le faire? J'essaye de chnage la couleur de la barre de navigation au noir. mais je montre que la couleur du segmentedControll et le bouton sur la navigationBar ont également changé en noir.comment je peux changer la couleur de fond de navigationBar

merci d'avance.

Répondre

12

essayez de définir les objets comme subviews au navigationBar.

Régler la couleur de teinte

UINavigationController *theNavigationController = [[UINavigationController alloc] initWithRootViewController: aFeedControler]; 
theNavigationController.navigationBar.tintColor = [UIColor blackColor]; 

Ajouter le segmentedControl comme sous-vue dans les viewControllers comme ceci:

UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems: 
[NSArray arrayWithObjects:[UIImage imageNamed:@"segment_check.png"], 
[UIImage imageNamed:@"segment_search.png"], 
[UIImage imageNamed:@"segment_tools.png"], nil]]; 
    CGRect frame = CGRectMake(0,0, 200,40); 
    segmentedControl.frame = frame; 
    [segmentedControl addTarget:self action:@selector(segmentAction:) forControlEvents:UIControlEventValueChanged]; 
    segmentedControl.segmentedControlStyle = UISegmentedControlStylePlain; 
    segmentedControl.selectedSegmentIndex = 1; 
    self.navigationItem.titleView = segmentedControl; 

Pour les boutons que vous devriez essayer de créer UIButtons pas UIBarButtonsItems et les ajouter comme subviews aussi . Si vous créez UIBarButtonsItems et ajoutez-les comme ceci self.navigationItem.rightBarButtonItem = tempButton; vous obtiendrez l'effet que vous avez vu.

si vous les ajoutez que vous ne devriez pas avoir subviews le problème que vous avez mentionné .. espérons que cela aide.

+0

Merci pour votre solution. – faisal

+0

si le problème a été résolu fermez la question. –

+0

pourquoi le vote à la baisse? –

0

Vous avez la propriété appelée tintColor dans la barre de navigation. Vous pouvez définir sa valeur à n'importe quelle couleur.

0
UINavigationController *_navigationController = [[UINavigationController alloc] initWithRootViewController: _viewController]; 

either this 
_navigationController.navigationBar.tintColor = [UIColor blackColor]; 

OR 
_navigationController.navigationBar.barStyle=UIBarStyleBlack; 



Now about right and left buttons: 
UIButton *btnLeft=[UIButton buttonWithType:UIButtonTypeCustom]; 
btnLeft.frame=CGRectMake(0.0, 5.0, 50.0, 30.0); 
btnLeft.backgroundColor=[UIColor RedColor]; 
btnLeft.layer.borderColor=[UIColor whiteColor].CGColor; 
btnLeft.titleLabel.textColor=[UIColor blackColor]; 
btnLeft.titleLabel.font=[UIFont boldSystemFontOfSize:10.0]; 

_navigationController.navigationItem.leftBarButtonItem=[[UIBarButtonItem alloc]initWithCustomView:btnLeft]; 



similary you can add right bar button 
Questions connexes