J'essaie d'ajouter un élément UIBarButton à ma barre de navigation.
Voici ma déclaration de classe de barre de navigation:
import UIKit
class NavigationBarController: UINavigationController {
override func viewDidLoad() {
super.viewDidLoad()
configureToolbar()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
// #pragma mark - Navigation bar data source
func configureToolbar() {
let toolbarButtonItems = [
searchBarButtonItem
]
toolbar.setItems(toolbarButtonItems, animated: true)
}
var searchBarButtonItem: UIBarButtonItem {
return UIBarButtonItem(barButtonSystemItem: .Search, target: self, action: "barButtonItemClicked:")
}
}
Aucune erreur dans le compilateur, mais tout ce que j'obtiens est une simple barre de navigation.
Comment faire apparaître l'UIBarButtonItem?
Pour ajouter des éléments au NavigationBar
d'un NavigationController
, ou à un NavigationBar
ajouté à un ViewController
, vous devrez d'abord passer par NavigationItem
. Essaye ça:
self.navigationItem.setRightBarButtonItems(navigationBarButtonItemsArray, animated: true)
// Or if you just want to insert one item.
self.navigationItem.setRightBarButtonItem(UIBarButtonItem(barButtonSystemItem: .Search, target: self, action: "barButtonItemClicked:"), animated: true)
Pour basculer le bouton vers la gauche, remplacez simplement setRightBarButtonItem
par setLeftBarButtonItem
ou setLeftBarButtonItems
.
Vous pouvez ajouter plusieurs boutons à droite ou à gauche de la barre de navigation. Je vais vous montrer à ajouter sur le côté droit et vous pouvez faire de même pour le côté gauche aussi
override func viewDidLoad()
{
let Nam1BarBtnVar = UIBarButtonItem(barButtonSystemItem: .Edit, target: self, action: #selector(Nam1BarBtnKlkFnc(_:)))
let Nam2BarBtnVar = UIBarButtonItem(barButtonSystemItem: .Add, target: self, action: #selector(Nam2BarBtnKlkFnc(_:)))
self.navigationItem.setRightBarButtonItems([Nam1BarBtnVar, Nam2BarBtnVar], animated: true)
}
func Nam1BarBtnKlkFnc(BtnPsgVar: UIBarButtonItem)
{
print("Nam1BarBtnKlk")
}
func Nam2BarBtnKlkFnc(BtnPsgVar: UIBarButtonItem)
{
print("Nam2BarBtnKlk")
}
Mis à jour pour Swift 3:
Utilisez le code ci-dessous pour ajouter un élément UIBarButton par programme.
Pour ajouter le bouton de la barre de gauche:
self.navigationItem.leftBarButtonItem = UIBarButtonItem(image: #imageLiteral(resourceName: "your_image_name"), style: UIBarButtonItemStyle.plain, target: self, action: #selector(yourViewControllerName.barButtonClickAction))
Pour ajouter le bouton de la barre de droite:
self.navigationItem.rightBarButtonItem = UIBarButtonItem(image: #imageLiteral(resourceName: "your_image_name"), style: UIBarButtonItemStyle.plain, target: self, action: #selector(yourViewControllerName.barButtonClickAction))
Définition de la méthode:
func barButtonClickAction() {
print("Button click...")
}