web-dev-qa-db-fra.com

Comment ajouter le bouton droit dans la barre de navigation?

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!

8
user2262304

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:))
)
27
Jean-Baptiste

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;
4
Vahan Babayan
- (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

}
2
Vasanthan Prem

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]
0
iPhoneDeveloper

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
0
Paras vora