以编程方式在 Swift 中添加 UIBarButtonItem 操作
Add UIBarButtonItem action in Swift programmatically
我正在尝试以编程方式将操作连接到 Swift 中的 UIBarButtonItem,没有任何 Storyboard。
我不能这样做:
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)
但是我不太明白怎么用。我应该在哪里指明选择器的名称?
谢谢!
好的,在发布这个问题后,我找到了解决问题的简单方法...使用 "default" UIBarButtonItem 构造函数和以下代码:
let rightButtonItem = UIBarButtonItem(title: "Camera", style: .Plain, target: self, action: "launchCamera")
rightButtonItem.FAIcon = FAType.Camera
例如,我为 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
Swift 使我们可以轻松地向 UIBarButtonItem 添加操作。
let rightBarButton = UIBarButtonItem()
// add an action
rightBarButton.action = #selector(yourAction)
我正在尝试以编程方式将操作连接到 Swift 中的 UIBarButtonItem,没有任何 Storyboard。
我不能这样做:
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)
但是我不太明白怎么用。我应该在哪里指明选择器的名称?
谢谢!
好的,在发布这个问题后,我找到了解决问题的简单方法...使用 "default" UIBarButtonItem 构造函数和以下代码:
let rightButtonItem = UIBarButtonItem(title: "Camera", style: .Plain, target: self, action: "launchCamera")
rightButtonItem.FAIcon = FAType.Camera
例如,我为 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
Swift 使我们可以轻松地向 UIBarButtonItem 添加操作。
let rightBarButton = UIBarButtonItem()
// add an action
rightBarButton.action = #selector(yourAction)