I'll keep this short


I dismiss the view controller and call a function on the incoming controller that fires fine. The value even prints to console fine. I assigned the value to local variable and it prints and works fine until I begin updating the other properties on the struct object which is holding the value. In fact, the value is erased entirely from all the object it was stored. The code only touches the value once so I am not sure what is going on.

This is how I am dismissing:

var controller = AddVendersTableViewController()

override func viewDidLoad() { 
        //MARK: Temp
        controller.delegate = self

@objc func returnToOriginatingController(){
        dismiss(animated: true) { [weak self] in
            print("This is the initiated view controller — \(String(describing: self?.controller))")
        submitButton.isHidden = true

This is the receiving end on the new controller:

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