我有一个条形按钮项目,我想以编程方式按,基本上相当于
buttonObj.sendActionsForControlEvents(UIControlEvents.TouchUpInside)
但作为条形按钮项目
编辑:我忘了提及,我不能简单地调用按钮的动作方法,因为我正在使用SWRevealViewController库并在条形按钮项上使用它们的"revealToggle:"
动作,我不是确定如何自己打电话。
答案 0 :(得分:11)
如果你看一下Objective-C等效问题,你会看到使用performSelector:
的实现。在Swift中,您无权访问此方法。以下是Apple发布的官方消息:
在Swift中不导入performSelector:方法和相关的选择器调用方法,因为它们本质上是不安全的。
您可以使用UIApplication.sendAction(_:to:from:forEvent:)
来解决此问题。从技术上讲,你也应该在Objective-C中这样做。
假设您的UIBarButtonItem
定义为barButtonItem
。以下代码可以满足您的要求。
UIApplication.sharedApplication().sendAction(barButtonItem.action, to: barButtonItem.target, from: self, forEvent: nil)
答案 1 :(得分:4)
Swift 4(和3)语法
UIApplication.shared.sendAction(barButtonItem.action!, to: barButtonItem.target, from: self, for: nil)
答案 2 :(得分:0)
在 Swift 5 中工作:
_ = button.target?.perform(button.action, with: nil)