Voici une très bonne solution qui couvre tous les points soulevés dans les commentaires ci-dessus. Semblable à la réponse acceptée, mais cette approche inclut un espacement supplémentaire (via la modification du cadre) afin que le bouton ne soit pas écrasé contre le bord droit.
// Create the info button
UIButton *infoButton = [UIButton buttonWithType:UIButtonTypeInfoLight];
// Adjust the frame by adding an addition 10 points to its width so the button is padded nicely
infoButton.frame = CGRectMake(infoButton.frame.origin.x, infoButton.frame.origin.y, infoButton.frame.size.width + 10.0, infoButton.frame.size.height);
// Hook the button up to an action
[infoButton addTarget:self action:@selector(showInfoScreen) forControlEvents:UIControlEventTouchUpInside];
// Add the button to the nav bar
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:infoButton];
// Also make sure to add a showInfoScreen method to your class!
Brillant, merci Reena. Je l'ai marqué comme la réponse acceptée, mais si vous seriez si gentil que de pardonner ma malice, puis-je demander comment on pourrait apporter le bouton d'information à gauche par cinq pixels ou plus? L'ajouter comme élément de la barre de droite signifie qu'il est écrasé contre le côté droit de l'écran. –
en utilisant la propriété 'leftBarButtonItem' vous pouvez définir à gauche self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView: btn]; – Reena
Désolé Reena. Je le veux comme le bouton droit, je veux juste ajouter un peu d'espace sur la droite (ce qui amène le bouton droit 5px à gauche). Est-ce possible? –