Как передать значение из 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