gpt4 book ai didi

swift - 如果连接到快速查看 Controller ,选择器将不起作用

转载 作者:行者123 更新时间:2023-11-28 15:06:39 24 4
gpt4 key购买 nike

我尝试创建一个 setupTap 函数,该函数获取一个字符串作为参数,该字符串应该是一个函数名称。当在选择器中我尝试调用函数(函数的 View Controller 与函数字符串名称连接)时,它不起作用。这是我尝试过的:

func setupTap(functionName: String) {
let tap = UITapGestureRecognizer(target: self, action: MainScreenViewController().perform(NSSelectorFromString(functionName)))
settingLabel.isUserInteractionEnabled = true
settingLabel.addGestureRecognizer(tap)
}

谢谢你的帮助

最佳答案

这样做:

MainScreenViewController().perform(NSSelectorFromString(functionName))

您不是在传递选择器,而是直接执行选择器。您应该让手势识别器执行选择器。

事实上,swift 有创建选择器的这种很酷的语法:

#selector(someFunc)

它不使用任何字符串文字,因此编译时会检查拼写错误!

您的setupTap 函数应该是这样的:

func setupTap(selector: Selector) {
let tap = UITapGestureRecognizer(target: self, action: selector)
settingLabel.isUserInteractionEnabled = true
settingLabel.addGestureRecognizer(tap)
}

这样调用:

setupTap(selector: #selector(someFunc))

关于swift - 如果连接到快速查看 Controller ,选择器将不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48355849/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com