2011-02-07 6 views
0

Si j'utilise UIBarButtonSystemItemCancel, sa couleur est définie sur celle de la barre de navigation. Cependant, dans l'application Photos, le bouton "Annuler" est affiché avec un arrière-plan bleu. Comment puis-je également définir le UIBarButtonSystemItemCancel pour avoir un fond bleu s'il vous plaît?Changer la couleur de UIBarButtonSystemItemCancel

Répondre

3

peut utiliser votre image comme image bouton comme

UIImage *buttonImage = [UIImage imageNamed:@"image.png"]; 

//create the button and assign the image 
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; 
[button setImage:buttonImage forState:UIControlStateNormal]; 


//create a UIBarButtonItem with the button as a custom view 
//UIBarButtonItem *customBarItem = [[UIBarButtonItem alloc] initWithCustomView:button]; 

[button addTarget:self action:@selector(clickActionItem:) forControlEvents:UIControlEventTouchUpInside]; 

UIBarButtonItem *rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:button ]; 




self.navigationItem.rightBarButtonItem = rightBarButtonItem; 
+1

Si vous souhaitez placer un élément de barre dans la gauche, vous pouvez le faire à partir de self.navigationItem.leftBarButtonItem = variable urbarbutton. –

+0

Merci, votre suggestion est une bonne solution de contournement mais j'espérais que ce serait possible sans une solution de contournement – CastToInteger

2

mis l'theNavigationController.navigationBar.barStyle à UIBarStyleBlackTranslucent

theNavigationController.navigationBar.barStyle = UIBarStyleBlackTranslucent; 

et les boutons seront bleu par défaut.

+0

Malheureusement, j'ai une couleur personnalisée pour la barre de navigation. J'ai essayé mais ça ne marche pas – CastToInteger

1

Il existe un meilleur moyen que d'utiliser une image. Le UISegmentedControl peut être configuré pour ressembler à un UIBarButtonItem et UISegmentedControl a une propriété tintColor. J'ai construit un UIBarButtonItem category qui va faire cela.