将步进值传递到另一个视图控制器

问题描述 投票:0回答:1

很容易解释的代码,我的问题是第一张打印图显示正确的值,但第二张打印图始终显示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)
}
swift view controller stepper
1个回答
0
投票

您需要将stepperValue的值分配给CalcVC.calcVCStepperValue。目前,您只是在创建CalcVC,然后打印出calcVCStepperValue的默认值。

let CalcVC = CalculatorVC()
CalcVC.calcVCStepperValue = stepperValue
stepperValue = CalcVC.calcVCStepperValue
print(stepperValue)

如果您使用segue进行此操作,则无法创建视图控制器的新实例。相反,您需要在要解散的视图控制器上实现prepareForSegue功能,并使用segue参数访问destinationViewController

Passing data with unwind segue上已有此答案

© www.soinside.com 2019 - 2024. All rights reserved.