Search code examples
swiftuibarbuttonitemxcode6-beta6

Add action to UIBarButtonItem Swift


Button is created in storyboard and I want to add an action.

self.cancel.action = NSSelectorFromString("cancel:")

func cancel(sender: UIBarButtonItem) ->() {
}

This not working. Thanks


Solution

  • See mine.

    1. Adding a UIButton to UIBarbuttonitem.

      self.navigationController?.navigationBarHidden = false
      
      //making a button
      var button: UIButton = UIButton()
      button.setImage(UIImage(named: "person-icon.jpg"), forState: .Normal)
      button.frame = CGRectMake(0, 0, 25, 25)
      button.targetForAction("actioncall", withSender: self)
      button.addTarget(self, action: "actioncall", forControlEvents: UIControlEvents.TouchUpInside)
      
      //making a UIBarbuttonItem on UINavigationBar
      var rightItem:UIBarButtonItem = UIBarButtonItem()
      rightItem.customView = button        
      self.navigationItem.rightBarButtonItem = rightItem
      
    2. Initialise a UIBarButtonItem

      let rightNavItem = UIBarButtonItem(image: UIImage(named: "search1x"), landscapeImagePhone: nil, style: UIBarButtonItemStyle.Plain, target: self, action: "actioncall")
      navigationItem.rightBarButtonItem = rightNavItem
      
    3. OR

      let rightNavItem = UIBarButtonItem()
      rightNavItem.action = "action call"
      
      
      //Anticipated Method on clicking uibarbuttonitem
      func actioncall(){
      }