192 votes

Comment ajouter un bouton droit à un UINavigationController ?

Je suis en train d’ajouter un bouton Actualiser de la barre du haut d’une manette de navigation sans succès.

Voici l’en-tête :

Voici comment je suis en train de l’ajouter :

362voto

Louis Gerbarg Points 33025

Essayez de le faire dans le viewDidLoad. Généralement, vous devriez reporter tout ce que vous pouvez jusqu'à ce que le point de toute façon, quand un UIViewController est inited, cela pourrait quand même être tout à fait un certain temps avant qu'elle affiche, aucun point de faire le travail plus tôt et attachant de la mémoire.

- (void)viewDidLoad {
  [super viewDidLoad];

  UIBarButtonItem *anotherButton = [[UIBarButtonItem alloc] initWithTitle:@"Show" style:UIBarButtonItemStylePlain target:self action:@selector(refreshPropertyList:)];          
  self.navigationItem.rightBarButtonItem = anotherButton;
  [anotherButton release];
}

Pourquoi il ne fonctionne pas actuellement, je ne peux pas dire avec certitude à 100% sans voir plus de code, mais beaucoup de choses se passe entre l'initialisation et la vue de chargement, et vous pouvez peut-être faire quelque chose qui provoque la navigationItem remise à zéro entre les deux.

38voto

Adam Points 303

Essayez d'ajouter le bouton à navigationItem de la vue-contrôleur qui va être poussé sur cette PropertyViewController classe que vous avez créé.

C'est:

MainViewController *vc = [[MainViewController alloc] initWithNibName:@"MainViewController" bundle:nil];
UIButton *infoButton = [UIButton buttonWithType:UIButtonTypeInfoLight];
[infoButton addTarget:self action:@selector(showInfo) forControlEvents:UIControlEventTouchUpInside];
vc.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc] initWithCustomView:infoButton] autorelease];

PropertyViewController *navController = [[PropertyViewController alloc] initWithRootViewController:vc];

Maintenant, ce infoButton qui a été créé par programmation apparaîtra dans la barre de navigation. L'idée est que la manette de navigation ramasse son affichage des informations (titre, des boutons, etc) à partir de l' UIViewController qu'il est sur le point de l'affichage. Vous n'avez pas réellement ajouter des boutons et tel directement à l' UINavigationController.

15voto

Manni Points 4213

Il y a un bouton de système par défaut pour « Rafraîchir » :

11voto

Vandit Mehta Points 191

Vous pouvez utiliser ceci :

4voto

Jasarien Points 35353

Pourquoi êtes-vous sous-classes `` ? Il n’y a pas besoin de la sous-classe si tout ce que vous devez faire est d’ajouter un bouton à elle.

Mettre en place une hiérarchie avec un en haut, puis dans votre contrôleur racine de la vue méthode : mettre en place le bouton et l’attacher à l’élément de navigation en appelant

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