Swift: 使用委托机制更新 table 数据

Swift: updating table data using delegation mechanism

我仍在努力使用委托方法更新从外部 class 触发的 UITableView 元素中的数据。我已经可以在包含 table 本身的 class 中更新 table 数据(例如 viewDidLoad())。但是我希望这个 table 在另一个视图控制器 class 中的按钮被选中时被更新。是的,我是菜鸟:(

这是我的第一个 class,其中包含要更新的 table 和更新方法:

class OrderHistoryController: UIViewController, UITableViewDataSource, UITableViewDelegate, reloadTableDataDelegate {
  
    //update table data
    func reloadTableData() {
        self.orderTable.delegate = self
        self.orderTable.dataSource = self
        self.orderTable.reloadData()
        print("update successful")
    }
    
    @IBOutlet var orderTable: UITableView!
    
    override func viewDidLoad() {
        super.viewDidLoad()
    }
    override func viewDidAppear(_ animated: Bool) {
        reloadTableData()
    }
}

这是授权协议:

protocol reloadTableDataDelegate: class {
    func reloadTableData()
}

这是必须触发 table 数据更新的 class:

class OrderDocumentationController: UIViewController {
    
    weak var delegate: reloadTableDataDelegate?
    
    //delegate function to update table in order history
    func updateTableInOrderHistory() {
        delegate?.reloadTableData()
    }
    
    @IBAction func save(_ sender: UIButton) {
        updateTableInOrderHistory()
    }
}

代码不会导致错误,但委托根本不起作用。它似乎没有被调用,我的 table 没有得到更新......你能帮帮我吗?提前致谢!!!

这里似乎没有代表

 delegate?.reloadTableData()

需要在prepareForSegue里面设置