Recarregar tableView após descartar uma viewController

Eu tenho um ViewController (VCA) com um TableView dentro. Nesse ViewController, é possível chamar outro ViewController (VCB). Neste segundo VC, é possível adicionar um item ao plist usado para preencher o TableView no VCA. O problema é que, quando eu salvo o novo item e dispenso o VCB, não consigo recarregar o TableView no VCA.

Eu encontrei muitos exemplos:

Como você pode recarregar um ViewController depois de descartar um controlador de exibição apresentado no Swift?

Como chamar o modo de exibição de tabela de recarga depois de chamar de dispensar o ViewController rapidamente?

Como recarregar tableview de outro controlador de exibição no swift

Atualize os dados de um TableViewController após adicionar item

Atualize a primeira exibição depois de descartar o Popover

A exibição de tabela não está sendo atualizada depois de descartar o popover?

Depois de ler, tentei com este código:

    **IN VCB**

import UIKit 

protocol AddItemDelegateProtocol {
    func didAddItem()
}

class VCB: UIViewController {

    var delegate : AddItemDelegateProtocol?
    ...
}

@IBAction func saveButton(_ sender: Any) {
        .... 
   self.delegate?.didAddItem()
   dismiss(animated: true, completion: nil)     
   }



**In VCA**

class VCA: UIViewController, UITableViewDelegate, UITableViewDataSource, AddItemDelegateProtocol {

let addItemVC = VCB()
...

override func viewDidLoad() {
        super.viewDidLoad()

        addItemVC.delegate = self
        ...
    }

func didAddItem() {
        self.tableView.reloadData()
    }

mas isso não funciona. Eu não entendo onde estou errado. Você poderia me ajudar?

EDIT: minha solução Eu resolvi desta maneira:

Eu criei um singleton no qual declaro:

    class DataManager {

        static let shared = DataManager()
        var firstVC = VCA()
.....
}

então,em viewDidLoad do VCA:

DataManager.shared.firstVC = self

agora,no saveButton do VCB, eu posso ligar:

@IBAction func saveButton(_ sender: Any) {
    ........
    DataManager.shared.firstVC.tableView.reloadData()
    dismiss(animated: true, completion: nil)
}

questionAnswers(4)

yourAnswerToTheQuestion