2016-02-29 5 views
0

Я пытаюсь подключить действие к моему UIBarButtonItem в Swift программно, без раскадровки.Добавить действие UIBarButtonItem в Swift программно

Я не могу сделать это таким образом:

var b = UIBarButtonItem(title: "Continue", style: .Plain, target: self, action: "sayHello") 

Поскольку я использую внешнюю библиотеку (Font_Awesome_Swift), который не имеет конструктор для создания UIBarButtonItem с иконкой из библиотеки. Так что я делаю это так:

let rightButtonItem = UIBarButtonItem() 
rightButtonItem.FAIcon = FAType.FACamera 

Тогда, я хочу, чтобы иметь возможность прикрепить к ней действие этого UIBarButtonItem. Я нашел в другом ответе следующее решение:

UIApplication.sharedApplication().sendAction(barButtonItem.action, to: barButtonItem.target, from: self, forEvent: nil) 

Но я действительно не понимаю, как его использовать. Где указать имя селектора?

Спасибо!

ответ

0

Хорошо, только после публикации этого вопроса, я нашел простой способ решить мою проблему ... С «по умолчанию» UIBarButtonItem конструктору и следующий код:

let rightButtonItem = UIBarButtonItem(title: "Camera", style: .Plain, target: self, action: "launchCamera") 
rightButtonItem.FAIcon = FAType.Camera 
+0

Существует также возможность установить действие для UIBarButtonItem, rightButtonItem.actiion = "sayHello" // имя селектора – HardikDG

0

к примеру я пишу этот код для UIBarButtonItem:

navigationItem.rightBarButtonItem = UIBarButtonItem(barButtonSystemItem: .action , target: self, action: #selector(shareTapped)) 

и код селектора:

func shareTapped() { 

//   for share in Social media or Save in local 
//  let vc = UIActivityViewController(activityItems: [imageView.image!], applicationActivities: []) 
//  vc.popoverPresentationController?.barButtonItem = navigationItem.rightBarButtonItem 
//  present(vc, animated: true) 


     // this line its for share photo in facebook or twitter 
     if let vc = SLComposeViewController(forServiceType: SLServiceTypeTwitter) { 
      vc.setInitialText("Look at this great picture!") 
      vc.add(imageView.image!) 
      vc.add(URL(string: "http://www.photolib.noaa.gov/nssl")) 
      present(vc, animated: true) 
     } 
    } 

и я использовать изображение в мое приложение и из-за этого я использую изображение view.image

1

Swift делает добавление действия к UIBarButtonItem легко для нас.

let rightBarButton = UIBarButtonItem() 
// add an action 
rightBarButton.action = #selector(yourAction) 
Смежные вопросы