J'essaie d'ajouter un bouton d'actualisation à la barre supérieure d'un contrôleur de navigation sans succès.
Voici l'en-tête:
@interface PropertyViewController : UINavigationController {
}
Voici comment j'essaye de l'ajouter:
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {
UIBarButtonItem *anotherButton = [[UIBarButtonItem alloc] initWithTitle:@"Show" style:UIBarButtonItemStylePlain
target:self action:@selector(refreshPropertyList:)];
self.navigationItem.rightBarButtonItem = anotherButton;
}
return self;
}
la source
self.topViewController.navigationItem.leftBarButtonItem = nextButton;
Essayez d'ajouter le bouton à la navigationItem du contrôleur de vue qui va être poussé sur cette
PropertyViewController
classe que vous avez créée.C'est:
Maintenant, cet infoButton qui a été créé par programme apparaîtra dans la barre de navigation. L'idée est que le contrôleur de navigation récupère ses informations d'affichage (titre, boutons, etc.) à partir de
UIViewController
celui qu'il est sur le point d'afficher. Vous n'ajoutez pas réellement de boutons et autres directement au fichierUINavigationController
.la source
Il semble que certaines personnes (comme moi) viennent ici pour savoir comment ajouter un bouton de barre de navigation dans Interface Builder. La réponse ci-dessous montre comment procéder.
Ajouter un contrôleur de navigation à votre storyboard
Sélectionnez votre View Controller, puis dans le menu Xcode, choisissez Editor> Embed In> Navigation Controller .
Vous pouvez également ajouter un à
UINavigationBar
partir de la bibliothèque d'objets.Ajouter un élément de bouton de barre
Faites glisser a
UIBarButtonItem
de la bibliothèque d'objets vers la barre de navigation supérieure.Ça devrait ressembler à ça:
Définir les attributs
Vous pouvez double-cliquer sur "Élément" pour changer le texte en quelque chose comme "Actualiser", mais il existe une icône d' actualisation que vous pouvez utiliser. Sélectionnez simplement l'inspecteur d'attributs pour
UIBarButtonItem
et pour l' élément système, choisissez Actualiser .Cela vous donnera l'icône d'actualisation par défaut.
Ajouter une action IB
Faites glisser le contrôle de
UIBarButtonItem
vers le contrôleur de vue pour ajouter un fichier@IBAction
.C'est tout.
la source
Il existe un bouton système par défaut pour "Actualiser":
la source
Vous pouvez utiliser ceci:
Objectif c
Rapide
la source
la source
Pour Swift 2:
la source
Voici la solution dans Swift (définissez les options selon vos besoins):
la source
Pourquoi êtes-vous des sous-classes
UINavigationController
- ? Il n'est pas nécessaire de le sous-classer si tout ce que vous avez à faire est d'y ajouter un bouton.Configurez une hiérarchie avec un
UINavigationController
en haut, puis dans laviewDidLoad:
méthode de votre contrôleur de vue racine : configurez le bouton et attachez-le à l'élément de navigation en appelantla source
Tu peux essayer
la source
Swift 4:
la source
la source
Essayez ceci, cela fonctionne pour moi.
Barre de navigation et image d'arrière-plan également ajoutée au bouton droit.
la source
la source
la source
la source
Vous devez ajouter votre barButtonItem dans
- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated
method.la source
Copiez et collez simplement ce code Objective-C.
la source
Ce problème peut se produire si nous supprimons le contrôleur de vue ou essayons d'ajouter un nouveau contrôleur de vue dans le générateur d'interface (main.storyboard). Pour résoudre ce problème, il faut ajouter «Élément de navigation» dans le nouveau contrôleur de vue. Parfois, il arrive que nous créons un nouvel écran de contrôleur de vue et qu'il ne se connecte pas automatiquement à "Élément de navigation".
la source
Vous pouvez également ajouter plusieurs boutons en utilisant
rightBarButtonItems
la source
@Artilheiro: Si c'est un projet basé sur la navigation, vous pouvez créer BaseViewController. Toutes les autres vues hériteront de cette BaseView. Dans BaseView, vous pouvez définir des méthodes génériques pour ajouter le bouton droit ou pour modifier le texte du bouton gauche.
ex:
Et maintenant, dans n'importe quelle vue personnalisée, implémentez cette vue de base appelez les méthodes:
Dans certaines méthodes, appelez la méthode de base comme suit:
la source