我正在创建一个应用程序,一旦用户按下同意按钮,我需要将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)