Я оставлю это коротким
ПРОБЛЕМА:
Я отключаю контроллер вида и вызываю функцию на входящем контроллере, которая срабатывает нормально. Значение даже выводится на консоль нормально. Я присвоил значение локальной переменной, и оно печатается и работает нормально, пока не начну обновлять другие свойства объекта struct, который содержит значение. Фактически значение полностью стирается из всего объекта, в котором оно было сохранено. Код только касается значения один раз, поэтому я не уверен, что происходит.
Вот как я отклоняю:
var controller = AddVendersTableViewController()
override func viewDidLoad() {
...
//MARK: Temp
controller.delegate = self
}
@objc func returnToOriginatingController(){
dismiss(animated: true) { [weak self] in
self?.controller.enabledStatusChecker()
print("This is the initiated view controller — \(String(describing: self?.controller))")
}
submitButton.isHidden = true
}
Это принимающая сторона на новом контроллере:
var delegate : CompanyAddressDelegate? = nil
func enabledStatusChecker(){
if delegate != nil {
guard let string = delegate?.getCompanyAddress() else {return}
let localString = string
localVenderObject?.address = localString
print(localVenderObject ?? "this is not working")
print("\(self) — This is the current VC ")
}
print(localVenderObject ?? "No Value in enabledStatus")
if localVenderObject?.name != nil && localVenderObject?.phone != nil && localVenderObject?.email != nil && localVenderObject?.website != nil && localVenderObject?.address != nil {
submitButton.isEnabled = true
submitButton.layer.backgroundColor = UIColor.systemBlue.cgColor // temp color
}
}