Adding multiple custom bar buttons to custom nav bar

后端 未结 3 1068

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

相关标签:
3条回答
  • 2021-01-25 00:06

    UIBarButtonItem can be created with an custom view

    • create a view
    • add UIButtons to it
    • layout it
    • create a UIBarButtonItem with custom view
    • add it to the navigation bar
    0 讨论(0)
  • 2021-01-25 00:10

    This 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.

    0 讨论(0)
  • 2021-01-25 00:12

    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]
    }
    
    0 讨论(0)
提交回复
热议问题