2011-09-21 4 views

Répondre

2
UIImage *image = [UIImage imageNamed:@"imageName.png"]; 
UIBarButtonItem* backBarButton = [[UIBarButtonItem alloc] initWithImage:image style:UIBarButtonItemStylePlain target:self action:@selector(backButtonAction)]; 
self.navigationItem.leftBarButtonItem=backBarButton; 
[backBarButton release]; 
+0

thanx ami ... – iPhone

4

Praveen-K réponse est vrai, mais gardez à l'esprit que vous aurez à le faire dans chaque viewcontroller.

Depuis iOS5, Apple a introduit le concept «apparence».

- (void)setBackButtonBackgroundImage:(UIImage *)backgroundImage forState:(UIControlState)state barMetrics:(UIBarMetrics)barMetrics __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_5_0) UI_APPEARANCE_SELECTOR; 

Dans votre cas, serait quelque chose comme ça

UIImage *image = [UIImage imageNamed:@"imageName.png"]; 
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:image forState:UIControlStateNormal barMetrics:UIBarMetricsDefault]; 

Mais comme je l'ai dit, la réponse Praveen-K est ok et fonctionnera, mais juste pour vous faire savoir pour l'avenir.

+0

ok thanx ami – iPhone

0

Une autre façon de changer la couleur de l'élément arrière bouton de la barre est d'utiliser le contrôle du segment

UISegmentedControl *button = [[[UISegmentedControl alloc] initWithItems:[NSArray arrayWithObjects:@"Back", nil]] autorelease]; 
button.frame = CGRectMake(0, 0, 60, 30); 
button.center = self.view.center; 
button.momentary = YES; 
button.segmentedControlStyle = UISegmentedControlStyleBar; 
button.tintColor = [UIColor colorWithRed:0 green:0.1 blue:0.5 alpha:0]; 
[button addTarget:self action:@selector(handleBack:) forControlEvents:UIControlEventValueChanged]; 

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

Notez que nous attribuons la couleur que nous voulons la tintColor de propriété de UISegmentedControl. J'ai eu l'idée de ce site: http://charles.lescampeurs.org/2011/02/10/tint-color-uibutton-and-uibarbuttonitem

9

Si vous voulez juste changer la couleur, vous pouvez le faire avec cette ligne de code.

[[UIBarButtonItem appearance] setTintColor:[UIColor redColor]]; 

Remplacer redColor avec les éléments suivants pour régler la couleur des boutons:

colorWithRed:0/255.0 green:144/255.0 blue:200/255.0 alpha:1.0// pick your color using this 

Assurez-vous de mettre cela dans le contrôleur de vue qui pousse. Pas le contrôleur de vue où vous voulez voir cette couleur de bouton de retour.

+0

cela fonctionne-t-il vraiment? – Swati

+2

"Assurez-vous de placer ceci dans le contrôleur de vue qui appuie sur le bouton, mais pas sur le contrôleur de vue sur lequel vous voulez voir la couleur de ce bouton." est si important et clarifie beaucoup de choses. – phikes

+0

@kkendall: que se passe-t-il si je veux définir la couleur de la teinte uniquement pour le bouton de barre arrière (qui est défini sur le bouton de barre généré par défaut du système) plutôt que tous les éléments du bouton Barre? – AceN