2010-07-21 4 views
1

Je dois changer de couleur sur la valeur par défaut "self.navigationItem.backBarButtonItem". Pour ce faire créé une classe Ive bouton personnalisé et mis en œuvre comme ceci:Comment changer la couleur/l'image par défaut de backBarButtonItem?

- (void)viewDidLoad { 
[super viewDidLoad];  
BackButton *blueSaveButton = [[BackButton alloc] init]; 
UIBarButtonItem *temporaryBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:blueSaveButton]; 
temporaryBarButtonItem.title = @"Tillbaka"; 
self.navigationItem.backBarButtonItem = temporaryBarButtonItem; 
[temporaryBarButtonItem release]; 
[blueSaveButton release]; 
[self gotoLocation]; 

}

Mais cela n'a aucun effet sur le bouton. Alors, comment faites-vous cela sans "casser" le comportement par défaut/hérité de la barre de navigation?

EDIT: La raison en est que le bouton doit porter la marque de l'entreprise, donc les styles par défaut ne le seront pas.

BR

Répondre

0

Ok trouvé la solution (pas si bon mais ça marche) faites ceci: 1: Implémentez le bouton de ce tutoriel: www.switchonthecode.com

Cela va outrepasser le comportement par défaut de la barre de navigation.

2: Mettre en œuvre ce dans chaque point de vue qui a besoin le bouton personnalisé: osmorphis.blogspot.com

BR

1

Si vous voulez que le bouton est bleu (comme un bouton Terminé) et avoir le titre « Enregistrer » vous pouvez utiliser l'un des intégré dans le bouton de la barre des types d'éléments:

UIBarButtonItem *item = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemSave target:self action:@selector(myAction:)] autorelease]; 
+0

C'était rapide. Je dois définir une couleur ou une image personnalisée (marque de l'entreprise). Ceci est vraiment un inconvénient majeur du développement de l'iPhone que ce type de tâche simple nécessite une personnalisation lourde d'un contrôle simple. – Christofffer

+0

Dans ce cas, vous devrez utiliser une image. Créez un 'UIButton', définissez ses propriétés title et background image en utilisant les méthodes' setTitle: forState: 'et' setBackgroundImage: forState', puis créez le 'UIBarButtonItem' avec l'instance' UIButton' en tant que vue personnalisée. Pour autant que je sache, définir une couleur d'arrière-plan sur un bouton ne suffit pas. – Jasarien

+0

Je l'ai déjà fait dans le contrôleur BackButton. L'inférence que je dessine est que NavigationBarItem remplace mon contrôleur personnalisé. – Christofffer

Questions connexes