【发布时间】:2016-07-27 17:32:48
【问题描述】:
直接问题:
如何在 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,即UIButton,正在传递给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) 函数的方法?
旁注:
我尝试了为menuVC 创建一个homeViewControllerDelegate 对象以直接调用onSlideMenuButtonPressed(sender : UIButton) 的想法,这可能会起作用,但它似乎是一种迂回的方式,因为btnMenu 已经引用了该函数。
【问题讨论】:
标签: swift uibutton akswiftslidemenu