将 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.

上已有对此的答案