当您将一个按钮附加到viewController
并使用Ctrl-Drag创建一个动作(IBAction
)时,如果它没有参数,您将在Swift中创建一个像这样的方法:
当你把一个按钮附着到viewController
上,并使用ctrl-drag创建一个action (IBAction
)时,如果它没有参数,你就会在Swift中创建一个看起来像这样的方法:
@IBAction func buttonAction() {}
在 Objective-C 中,同样的事情看起来像这样:
- (IBAction)buttonAction {}
这意味着@IBAction func OK(sender: UIButton){}
是一个操作方法。
如果你想了解sender参数,我建议参考这篇StackOverflow帖子。
编辑:
为了实现你想要的功能,我创建了一个IBOutlet
和一个IBAction
,这样我就可以用outlet变量改变它的属性,并在IBAction
中处理操作的事情,就像你上面展示的那样:
@IBOutlet var OK: UIButton!
@IBAction func OK(sender: UIButton){}
例如,如果我想隐藏按钮,我会将这段代码放在
viewDidLoad
中。
OK.hidden = true
如果我想在按钮被按下时将"You pressed me"打印到控制台,那么上述代码中的OK是为了outlet变量。以下是相应代码:
@IBAction func OK(sender: UIButton){
println("You pressed me")
}
上面我使用了操作将“你按了我”打印到控制台中。
需要注意以下几点:
当Swift 2.0发布时,println
会被改成print
。此外,在您的操作和输出中,我建议给它们不同的名称,以便更容易区分两者,例如:
@IBOutlet var okOutlet: UIButton!
@IBAction func okAction(sender: UIButton){}
此外,在命名变量、常量、函数等时,你应该使用驼峰命名法。