如何更改swift Xcode中不同类的UISwitch的值



我正在创建一个应用程序,一旦用户按下同意按钮,我需要将UISwitch的值从false更改为true。

因此,当用户点击一个按钮时,会出现一个涉及条款和条件的页面,并且在该页面上有两个按钮;不同意"另一个是";同意";,当用户点击同意按钮时,页面将被关闭,这将使您返回到以前的注册表格,并需要将UISwitch从false更改为true。显然,当点击不同意时,页面会被关闭,开关应保持在false 上

以下是我正在使用的代码,我不确定为什么它不起作用:

是我的SignUpVC类我有以下:

我在哪里创建交换机:

let termsAndConditionsBox: UISwitch = {
let switchA = UISwitch()
return switchA
}()

当我调用这个类中的函数时,我用它来更改开关的值

func setAgreeSwitch(value: Bool) {
termsAndConditionsBox.isOn = value
}

但是当我用以下方式调用上面的函数来将开关值更改为true时,它不起作用:

@objc func handleAgreeTapped() {
let signUpVC = SignUpVC()
signUpVC.setAgreeSwitch(value: true)
}

TermsAConditions Tapped代码:

@objc func TermsAndConditionsTapped() {
let termsAndConditions = TermsAndConditionsVC()
present(termsAndConditions, animated: true, completion: nil)

}

我该怎么做?

let signUpVC = SignUpVC()

是一个新对象而不是呈现的1,您需要在TermsAConditionsVC中有一个委托

weak var delegate:SignUpVC?

然后

@objc func handleAgreeTapped() {
delegate?.setAgreeSwitch(value: true)
}

另外,当您导航到TermsAConditionsVC时,不要忘记设置delegate属性

termsAndConditions.delegate = self
present(termsAndConditions, animated: true, completion: nil)

最新更新