I need to add two bar button items to each end of my custom navigation bar in Swift. I\'m using the following method, and although I get no errors, nothing at all is ap
UIBarButtonItem
can be created with an custom view
UIButtons
to itUIBarButtonItem
with custom viewThis code works for me:
@IBOutlet weak var navBar: UINavigationBar!
@IBOutlet weak var navBarItem: UINavigationItem!
func displayTextInNavBar(text: String) {
let labelWidth: CGFloat = navBar.frame.width / 6
let frame = CGRect(x: 0, y: 0, width: labelWidth, height: navBar.frame.height)
let label = UILabel(frame: frame)
label.textAlignment = .Right
label.textColor = UIColor(red: 0/255, green: 127/255, blue: 0/255, alpha: 1)
label.font = UIFont(name: "Bradley Hand", size: 20)
label.text = text
let navBarButtonItem = UIBarButtonItem(customView: label)
navBarItem.rightBarButtonItem = navBarButtonItem
}
The above puts a label on the right side of the navBar. If you want an actual button that is clickable, do this instead:
let navBarButtonItem = UIBarButtonItem(title: text, style: .Plain, target: self, action: nil)
If you want that button to actually do something when clicked, then instead of nil
specify some function.
My solution to do it:
var barButton : UIBarButtonItem?
override func viewDidLoad() {
self.barButton = UIBarButtonItem(title: "Options", style: .plain, target: self, action: nil))
self.navigationItem.rightBarButtonItems = [barButton] as? [UIBarButtonItem]
}