J'ai une question pour ajouter un bouton droit dans la barre de navigation.
J'ai deux vues: vue A et vue B
J'ajoute une barre de navigation pour afficher A, après avoir utilisé self.navigationController!.pushViewController
pour afficher la vue B.
Cela montre un bouton de retour à gauche de la barre de navigation de la vue B automatique, c’est bien. Mais maintenant, je veux ajouter un bouton dans la barre de navigation à droite de la vue B .. J'ai essayé quelques réponses, mais ça ne marche pas. J'ai essayé des réponses comme: 1 ) https://www.hackingwithswift.com/example-code/uikit/how-to-add-a-bar-button-to-a-navigation-bar 2) http://blog.apoorvmote.com/add-multiple-bar-button-item-navigation-bar/?lang=fr
Pourriez-vous m'aider, merci!
La version rapide de la réponse de Vahan Babayan, comme vous semblez utiliser ce langage, est la suivante:
let rightButtonItem = UIBarButtonItem.init(
title: "Title",
style: .Done,
target: self,
action: "rightButtonAction:"
)
self.navigationItem.rightBarButtonItem = rightButtonItem
La méthode suivante sera appelée sur soi:
func rightButtonAction(sender: UIBarButtonItem)
Notez que tout cela peut être défini graphiquement à l'aide d'un Storyboard , en faisant glisser un élément de bouton de barre vers votre élément de navigation et en cliquant avec le bouton droit de la souris pour définir une action-cible.
Une petite mise à jour est disponible depuis Swift 3 et 4: le compilateur peut maintenant vérifier les noms des sélecteurs, empêchant ainsi les fautes de frappe lors de la configuration par programme de l'action-action. Donc, il faut vraiment utiliser:
let rightButtonItem = UIBarButtonItem.init(
title: "Title",
style: .Done,
target: self,
action: #selector(rightButtonAction(sender:))
)
Vous pouvez ajouter le code suivant à la méthode viewDidLoad
de votre contrôleur B.
UIBarButtonItem *rightButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Title"
style:UIBarButtonItemStyleDone
target:self
action:@selector(rightButtonAction:)];
self.navigationItem.rightBarButtonItem = rightButtonItem;
- (void)viewDidLoad {
[super viewDidLoad];
UIBarButtonItem *rightBtn = [[UIBarButtonItem alloc]initWithTitle:@"Right Button" style:UIBarButtonItemStyleDone target:self action:@selector(rightBtnClick)];
self.navigationItem.rightBarButtonItem = rightBtn;
}
-(void)rightBtnClick{
// code for right Button
}
Code rapide pour ajouter un élément de bouton de barre de navigation:
Méthode 1 (Lorsque vous voulez utiliser un élément du système de boutons de barre)
navigationItem.leftBarButtonItem = UIBarButtonItem(barButtonSystemItem: .add, target: self, action: #selector(addTapped))
Méthode 2 (Quand vous voulez donner votre titre à un bouton)
navigationItem.rightBarButtonItem = UIBarButtonItem(title: "Add", style: .plain, target: self, action: #selector(addTapped))
À partir d'iOS 5, il vous permet d'ajouter plus d'un bouton de chaque côté d'une barre de navigation. Quelque chose comme ça:
let add = UIBarButtonItem(barButtonSystemItem: .add, target: self, action: #selector(addTapped))
let display = UIBarButtonItem(title: "Display", style: .plain, target: self, action: #selector(playTapped))
navigationItem.rightBarButtonItems = [add, display]
Ajouter le code ci-dessous dans la méthode viewDidLoad
UIBarButtonItem *flipButton = [[UIBarButtonItem alloc]
initWithTitle:@"Flip"
style:UIBarButtonItemStyleBordered
target:self
action:@selector(flipView:)];
self.navigationItem.rightBarButtonItem = flipButton;
Cela ajoute un bouton à droite avec le titre Flip, qui appelle la méthode:
-(IBAction)flipView