Как передать значение из ViewController в свой класс?

С передачей данных между парой ViewController вроде все понятно - используется prepare. А как быть если я из ViewController хочу передать значение из поля TextField, в свой класс? Пытаюсь через делегат, но это не работает.

TableViewController:

import UIKit

protocol DataDelegate {
    func transferData(data: Double)
}

class SettingsTableController: UITableViewController {

    @IBOutlet weak var textField: UITextField!

    var delegate: DataDelegate?

    override func viewDidLoad() {
        super.viewDidLoad()
    }


    @IBAction func changeData(_ sender: Any) {
        let data = Double(textField.text!)!
        delegate?.transferData(data: data)
    }
}

MyClass:

import Foundation

class MyClass: DataDelegate {

    // Переменная которой нужно присвоить значение из TextField
    var someValue = 7.0

    func transferData(data: Double) {
        someValue = data
    }
}

Ответы (1 шт):

Автор решения: schmidt9

Вам нужно инициализировать свойство delegate сначала как-то так в классе MyClass

let vc = getSettingsTableController() // получаем каким-либо образом экземпляр класса
vc.delegate = self // self это экземпляр MyClass
→ Ссылка