直接问题:
如何在 Swift 2.0 中以编程方式点击 UIButton?
例子:UIButton.tap()
关于为什么我不能直接调用按钮单击功能的解释:
我目前正在使用 AKSwiftSlideMenu ( https://github.com/ashishkakkad8/AKSwiftSlideMenu ) ( https://www.cocoacontrols.com/controls/akswiftslidemenu ) 创建菜单。这是通过将菜单视图控制器作为子视图添加到主视图控制器来实现的。
let menuVC : BackTableViewController = self.storyboard!.instantiateViewControllerWithIdentifier("backTableViewController") as! BackTableViewController
menuVC.btnMenu = sender
self.view.addSubview(menuVC.view)
self.addChildViewController(menuVC)
如您所见,作为btnMenu
aUIButton
的 正在传递给menuVC
。在两个视图控制器上拥有相同的按钮允许主视图控制器中的单个onSlideMenuButtonPressed(sender : UIButton)
函数来处理menuVC
. 我正在创建的菜单中的一个选项是“注销”按钮,该按钮显示UIAlertViewController
询问用户是否要注销。以下是我的“是”按钮处理程序的代码menuVC
:
logOutAlert.addAction(UIAlertAction(title:"Yes", style: .Default, handler: { action in
self.btnMenu.touchInside
CURRENT_USER.unauth()
NSUserDefaults.standardUserDefaults().setValue(nil, forKey: "uid")
print("User logged out")
CurrentUser.checkIfUserIsLoggedIn()
}))
我正在尝试使用该touchInside
方法(当然这是不对的)点击按钮以关闭menuVC
. 是否有UIButton.tap()
等价物或访问该btnMenu
onSlideMenuButtonPressed(sender : UIButton)
功能的方法?
旁注:
我尝试了创建一个 homeViewControllerDelegate 对象以直接menuVC
调用的想法onSlideMenuButtonPressed(sender : UIButton)
,这可能有效,但它似乎是一种迂回的方式,因为它btnMenu
已经具有对该函数的引用。