199 votes

Supprimer le texte du titre d’un iOS 7 UIBarButtonItem

Ce que je voulais faire est de supprimer le texte du bouton "Retour" d'un UIBarButtonItem, ne laissant que le bleu chevron sur la barre de navigation. Gardez à l'esprit que je suis en développement pour iOS 7. J'ai essayé plusieurs méthodes, y compris, mais non limité à:

C'est la méthode de l'image, que je n'aime pas (l'image avait l'air de sortir de la place):

UIBarButtonItem *barBtnItem = [[UIBarButtonItem alloc]initWithImage:[UIImage imageNamed:@"iOS7BackButton"] style:UIBarButtonItemStylePlain target:self action:@selector(goToPrevious:)];
self.navigationItem.leftBarButtonItem = barBtnItem;

Une autre méthode que j'ai essayé est ce qui ne fonctionne tout simplement pas (rien ne s'affiche):

UIBarButtonItem *barBtn = [[UIBarButtonItem alloc]init];
barBtn.title=@"";
self.navigationItem.leftBarButtonItem=barBtn;

Ce que je voulais obtenir quelque chose comme le retour aux boutons de l'iOS 7 app Musique, qui n'en vedette un seul chevron.

Merci.

412voto

DonnaLea Points 2811

Pour définir le bouton de retour de titre pour une vue contrôleur sans changer c'est le titre que vous utilisez:

self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"" style:self.navigationItem.backBarButtonItem.style target:nil action:nil];

Pour être clair, ce qui est fait sur le point de vue du contrôleur que vous verriez si vous cliquez sur le bouton précédent s'affiche. I. e. au lieu de voir '< Settings " vous voulez juste voir '<', puis sur votre SettingsViewController vous le mettez dans votre init. Ensuite, vous n'obtenez pas tous les problèmes du titre de ne pas montrer quand vous êtes à la recherche à la vue du contrôleur lui-même.

198voto

andyleehao Points 799
 [[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(0, -60)
                                                         forBarMetrics:UIBarMetricsDefault];
 

Ensuite, vous pouvez supprimer le titre de l'élément du bouton Retour.

Si vous utilisez Storyboard, vous pouvez définir l'inspecteur des attributs de navigation sur le bouton Retour avec espace.

128voto

nkukushkin Points 303

Si vous utilisez Storyboard, vous pouvez aller à l' Attributes Inspector pour Contrôleur Navigation Item (cliquez sur la Barre de Navigation) et définissez Back Button "" (un caractère espace). Cela va régler le Bouton de Retour de titre à l'un caractère d'espace, laissant le chevron visible. Pas besoin de jouer avec le code.

Notez que ce sera mis en Back Button titre pour le Bouton Retour qui va enchaîner à ce point de Vue Contrôleur de celui qui a été poussé sur le dessus de lui, pas pour l' Back Button qui sera affiché à l'intérieur de ce Contrôleur!

120voto

Guto Araujo Points 1438

Cela fonctionne pour moi d'afficher juste le chevron «arrière» sans aucun texte:

 self.navigationController.navigationBar.topItem.title = @"";
 

Définissez cette propriété dans viewDidLoad de View Controller présentant la barre de navigation et elle fera l'affaire.

Remarque: je l'ai seulement testé sur iOS 7, ce qui est dans la portée de la question.

27voto

Kamaros Points 2199

Lors de la configuration du bouton de titre, utilisez " @ "" à la place de @"".

--EDIT--

Ne rien changer lorsque vous essayez d'autres chaînes? Je suis en utilisant le code suivant moi-même avec succès:

UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:backString style:UIBarButtonItemStyleDone target:nil action:nil];
[[self navigationItem] setBackBarButtonItem:backButton];

backString est une variable qui est définie à l' @" " ou @"Retour", selon si je suis sur iOS 7 ou une version inférieure.

Une chose à noter est que ce code n'est pas dans le contrôleur de la page, je veux personnaliser le bouton retour pour. C'est en fait dans le contrôleur avant elle sur la pile de navigation.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X