Собственность делегата при загадочном сбрасывании - PullRequest
1 голос
/ 08 ноября 2019

Я оставлю это коротким

ПРОБЛЕМА:

Я отключаю контроллер вида и вызываю функцию на входящем контроллере, которая срабатывает нормально. Значение даже выводится на консоль нормально. Я присвоил значение локальной переменной, и оно печатается и работает нормально, пока не начну обновлять другие свойства объекта 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
        }
    }
...