以编程方式在Swift中添加UIBarButtonItem操作

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了以编程方式在Swift中添加UIBarButtonItem操作相关的知识,希望对你有一定的参考价值。

我正在尝试以编程方式将动作连接到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)

但我真的不明白如何使用它。我应该在哪里指出选择器的名称?

谢谢!

答案

好的,在发布此问题之后,我找到了一种简单的方法来解决我的问题...使用“默认”UIBarButtonItem构造函数和以下代码:

let rightButtonItem = UIBarButtonItem(title: "Camera", style: .Plain, target: self, action: "launchCamera")
rightButtonItem.FAIcon = FAType.Camera
另一答案

Swift使我们可以轻松地向UIBarButtonItem添加动作。

let rightBarButton = UIBarButtonItem()
// add an action
rightBarButton.action = #selector(yourAction)
另一答案

例如,我为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操作的主要内容,如果未能解决你的问题,请参考以下文章

如何在 macOS 上以编程方式在 Swift 中添加 NSView [重复]

未能尝试在 SWIFT 中以编程方式在滚动视图中添加 UIView 约束

Swift:以编程方式在键盘上方添加 UIButton

在 swift 中以编程方式在堆栈视图中添加标签和文本视图

以编程方式向 Swift 中的视图添加约束时出错

如何在 Swift 3 中以编程方式在 UIImageview 中添加 UITableview