将 Stepper 值传递给另一个视图控制器
Passing Stepper value to another view controller
非常自我解释的代码,我的问题是第一个打印显示正确的值但第二个打印始终显示 0。我正在尝试将步进器的值传递给我的下一个视图控制器 (calcVC)。
编辑:忘记提及我的问题发生在我单击一个按钮时,该按钮触发了对 CalcVC 的展开转场,这是我丢失该值的时候。此外,这段代码在 TableViewCellVC 中,我的展开转场是从 TableViewVC 到 CalcVC,这就是我在 CalcVC 上遇到问题的原因。
最终编辑:通过创建全局变量修复它
var stepperValue = 1
@IBAction func stepperValueChanged(_ sender: Any) {
stepperValue = Int(stepper.value)
print(stepperValue)
stepperLabel.text = String(stepperValue)
let CalcVC = CalculatorVC()
stepperValue = CalcVC.calcVCStepperValue
print(stepperValue)
}
您需要将 stepperValue
的值赋给 CalcVC.calcVCStepperValue
。目前你只是创建 CalcVC
然后打印出默认值 calcVCStepperValue
.
let CalcVC = CalculatorVC()
CalcVC.calcVCStepperValue = stepperValue
stepperValue = CalcVC.calcVCStepperValue
print(stepperValue)
如果您使用 segues 执行此操作,则无法创建视图控制器的新实例。相反,您需要在要展开的视图控制器上实现 prepareForSegue
函数,并使用 segue 参数访问 destinationViewController
.
上已有对此的答案
非常自我解释的代码,我的问题是第一个打印显示正确的值但第二个打印始终显示 0。我正在尝试将步进器的值传递给我的下一个视图控制器 (calcVC)。
编辑:忘记提及我的问题发生在我单击一个按钮时,该按钮触发了对 CalcVC 的展开转场,这是我丢失该值的时候。此外,这段代码在 TableViewCellVC 中,我的展开转场是从 TableViewVC 到 CalcVC,这就是我在 CalcVC 上遇到问题的原因。
最终编辑:通过创建全局变量修复它
var stepperValue = 1
@IBAction func stepperValueChanged(_ sender: Any) {
stepperValue = Int(stepper.value)
print(stepperValue)
stepperLabel.text = String(stepperValue)
let CalcVC = CalculatorVC()
stepperValue = CalcVC.calcVCStepperValue
print(stepperValue)
}
您需要将 stepperValue
的值赋给 CalcVC.calcVCStepperValue
。目前你只是创建 CalcVC
然后打印出默认值 calcVCStepperValue
.
let CalcVC = CalculatorVC()
CalcVC.calcVCStepperValue = stepperValue
stepperValue = CalcVC.calcVCStepperValue
print(stepperValue)
如果您使用 segues 执行此操作,则无法创建视图控制器的新实例。相反,您需要在要展开的视图控制器上实现 prepareForSegue
函数,并使用 segue 参数访问 destinationViewController
.