gpt4 book ai didi

ios - 我可以快速将属性值添加到选择器吗?

转载 作者:搜寻专家 更新时间:2023-11-01 06:26:03 25 4
gpt4 key购买 nike

我一直在阅读有关选择器的所有内容,现在想知道是否有一种方法可以通过选择器发送函数属性的值。

我有一个方法:

@objc func acceptBiometrics(newValue: Int){
}

还有一个选择器:

#selector(acceptBiometrics(newValue:))

那么有没有一种方法可以让我将 1 作为新值发送,这样我就可以有两个选择器调用相同的函数,只是具有不同的值?

编辑 1:然后我将这个选择器发送到某个 View Controller 以创建我自己的带有按钮的警报 View Controller 。所以选择器在一个完全不同的 View Controller 中被调用。这样做的唯一方法是同时发送 vc 和我想用选择器发送的值吗?我没有办法做类似#selector(self.acceptBiometrics(newValue:1))

最佳答案

您可以使用 button.tag 并为其设置 1(或任何其他 Int 值)。

let button = UIButton()
button.tag = 1
button.addTarget(self, action: #selector(acceptBiometrics(_ :)), for: .touchUpInside)

然后在你的处理程序上:

@objc func acceptBiometrics(_ sender : UIButton) {
print(sender.tag)
}

注意事项:

tag 属性是一个 Int 变量,因此如果您想要任何其他 Type,您应该创建一个自定义 UIButton 只有一个新变量。

tag 默认值为 0,这意味着如果 0 是您逻辑中的可能值,您也应该使用自定义组件方法。

正如@matt 指出的那样,“选择器是方法的名称,而不是对方法的调用”。

正如@Sulthan 指出的那样,“子类化才是真正的解决方案”。

一个子类看起来像这样:

class ButtonWithValue : UIButton {
var value : Int? // note that this could be any Type.
}

然后实例化它,并将发送器参数类型更新为 ButtonWithValue。在处理程序中检查 sender.value

关于ios - 我可以快速将属性值添加到选择器吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54553616/

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