如何自动调用@IBAction函数

Mil*_*tle 10 ios swift

嗨我不知道如何在Swift中为@IBAction自动调用click-function.

说,我有一个计时器功能,当倒计时结束时,我需要以编程方式调用Click-function @IBAction,而不是要求用户点击按钮

如何在swift中完成?


@IBAction func DoSomeTask(sender: UIButton) {

- code--

}

aya*_*aio 32

您可以通过将其参数设置为可选来更改IBAction的签名,如下所示:

@IBAction func doSomeTask(sender: UIButton?) {
    // code
}
Run Code Online (Sandbox Code Playgroud)

然后用nil作为参数调用它:

doSomeTask(nil)
Run Code Online (Sandbox Code Playgroud)

或者您可以使用IBAction作为实际功能的包装器:

func doSomeTaskForButton() {
    // ...
}

@IBAction func doSomeTask(sender: UIButton) {
    doSomeTaskForButton()
}
Run Code Online (Sandbox Code Playgroud)

这意味着你可以doSomeTaskForButton()随时随地打电话.

  • `doSomeTask(sender:UIButton!)`意味着你不能传递nil作为参数(```force unwraps),`doSomeTask(sender:AnyObject!)`是相同的但是你必须*cast*`sender`作为IBAction中的UIButton使用它.`doSomeTask(sender:UIButton?)`很好,因为它将参数包装在Optional中,所以如果不直接从按钮调用IBAction,你可以从按钮或`nil`发送实际消息. (2认同)