首页 > 解决方案 > 从另一个 vc 重新加载 vc 表视图支持的最佳方法

问题描述

我正在尝试在计算控制器中重新加载表格视图,按下设置控制器上的后退导航按钮(屏幕截图上的红色箭头)。

最好的方法是什么?谢谢 !

标签: iosswifttableviewseguenavigationcontroller

解决方案


在导航控制器中它非常简单。在 Swift 中最有效的方法是回调闭包,它避免了协议/委托的开销。

  • SetupController声明一个callback属性时,一个没有参数且没有返回类型的闭包

    var callback : (() -> Void)?
    

    并在view中调用它会Dis出现viewWillDisappear总是在按下后退按钮时调用。

    override func viewWillDisappear(_ animated: Bool) {
        super.viewWillDisappear(animated)
        callback?()
    }
    
  • CalculationController分配回调prepare(for

    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        ...
        let setupController = segue.destination as! SetupController
        setupController.callback = { 
            self.tableView.reloadData()
        }
    

推荐阅读