如何在#selector中添加默认参数值

时间:2017-08-18 15:57:46

标签: ios swift function addtarget

我有一个功能:

func handleChange(isShown:Bool){
        if isShown {
           // do something A
        }else{
           // do something B
        }
    }

如果我希望UISlider使用 isShown 默认为 false 添加上述操作,我将调用方法{{1在另一个函数中使用 true 。 错误的代码如下:

handleChange(isShown:Bool)

我知道正确的代码需要:

slider.addTarget(self, action: #selector(handleValue(isShown:false)), for: .valueChanged) 

我只是想知道如何在swift中将'isShown'设置为false?感谢您的回复。

1 个答案:

答案 0 :(得分:1)

一种解决方案是使用与selector函数分开的辅助函数。选择器函数可以调用辅助函数,该函数可以包含任意数量的参数。

添加目标:

slider.addTarget(self, action: #selector(handleChange(_ sender: UISlider)), for: .valueChanged)

目标函数:

func handleChange(sender: UISlider) {
    // logic based on the action or slider
    doSomething(isShown: true)
}

辅助功能:

func doSomething(isShown: Bool) {
    // make your changes using the parameters here
}