试图理解#selector以及它的方法会发生什么需要参数Swift 3

时间:2017-05-26 02:52:11

标签: ios swift

我知道#selector(myFunc)只是“指向”myFunc。假设我有

UIBarButtonItem(title: "Logout", style: .plain, target: self, action: #selector(handleLogout))

func handleLogout(shouldAnimate: Bool) {
    present(someController, animated: shouldAnimate, completion: nil)
}

按下小节按钮项时参数shouldAnimate会发生什么?

有时我想要为视图制作动画,有时候我不想。这取决于是否从按钮调用handleLogout。有没有更好的方法来实现这一目标?

我看了很多其他线程,他们都说要使用实例变量,但我不明白这对我有什么帮助。

1 个答案:

答案 0 :(得分:1)

在这种情况下,参数将始终是发件人,即UIBarButtonItem的实例。所以你应该像这样改变方法签名..

func handleLogout(sender: UIBarButtonItem) {
    //let shouldAnimate = decide what you want here... 
    present(someController, animated: shouldAnimate, completion: nil)
}