How to Auto call an @IBAction function

前端 未结 3 1246
名媛妹妹
名媛妹妹 2021-02-19 21:17

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-funct

相关标签:
3条回答
  • 2021-02-19 22:01

    doSomeTask(UIButton()) in swift 5.0 and onward

    0 讨论(0)
  • 2021-02-19 22:05

    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.

    0 讨论(0)
  • 2021-02-19 22:07

    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)
    
    0 讨论(0)
提交回复
热议问题