Hi I am not sure how to do auto call a click-function for an @IBAction in Swift.
Say, I have a timer function, when countdown is finished, I need to call the Click-function @IBAction as below programmatically instead of asking user to click the button
How to do it in swift?
@IBAction func DoSomeTask(sender: UIButton) { - code-- }
You can either change the signature of the IBAction by making its parameter an Optional like this:
@IBAction func doSomeTask(sender: UIButton?) {
// code
}
and then call it with nil as an argument:
doSomeTask(nil)
Or you can use the IBAction as a wrapper for the real function:
func doSomeTaskForButton() {
// ...
}
@IBAction func doSomeTask(sender: UIButton) {
doSomeTaskForButton()
}
meaning you can then call doSomeTaskForButton()
from wherever you want.
doSomeTask(UIButton())
in swift 5.0 and onward
Do the same thing as @Moritz said but instead
@IBAction func doSomeTask(sender: UIButton? = nil) {
// code
}
so that way, you do something like:
`doSomeTask()`
which is saying the same thing as saying
`doSomeTask(sender:nil)
or pass an UIButton object if you so wish so.
doSomeTask(sender:SomeUIButton)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With