Передача значения Stepper другому контроллеру представления

Довольно понятный код, моя проблема заключается в том, что первый отпечаток показывает правильное значение, но второй отпечаток всегда показывает 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)
}

person AvsBest    schedule 13.03.2020    source источник
comment
Каково значение calcVCStepperValue?   -  person Thijs van der Heijden    schedule 14.03.2020
comment
просто var CalcVCStepperValue = Int()   -  person AvsBest    schedule 14.03.2020
comment
Таким образом, в основном вы устанавливали stepperValue на 0, поскольку вы косвенно устанавливали значение stepperValue на Int(), что равно 0.   -  person Thijs van der Heijden    schedule 14.03.2020


Ответы (1)


Вам нужно присвоить значение stepperValue CalcVC.calcVCStepperValue. На данный момент вы просто создаете CalcVC, а затем распечатываете значение по умолчанию calcVCStepperValue.

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

Если вы делаете это с переходами, вы не можете создать новый экземпляр контроллера представления. Вместо этого вам нужно реализовать функцию prepareForSegue на контроллере представления, из которого вы разворачиваетесь, и использовать параметр segue для доступа к destinationViewController.

Для этого существует ответ на Передача данных с переходом на раскрутку

person Calvedos    schedule 14.03.2020
comment
Согласно точкам останова, это работает, однако я забыл упомянуть, что моя проблема возникает, когда я нажимаю кнопку, которая запускает и разворачивает переход к CalcVC, когда я теряю значение. Я обновил свой исходный пост, чтобы отразить это - person AvsBest; 14.03.2020
comment
Обновил мой ответ :) - person Calvedos; 14.03.2020
comment
Исправлено созданием глобальной переменной. Спасибо - person AvsBest; 14.03.2020