首页 > 解决方案 > 在swift 5中关闭视图控制器时如何重新加载tableview

问题描述

1

我已经搜索了这个网站和网络,只是寻找一个简单的例子来说明如何从详细视图重新加载根视图控制器的表视图。我试过通知,在detailview控制器中设置一个tableview等于rootview控制器的tableview......没有任何效果。

标签: iosswift

解决方案


您可以使用关闭回调或通知中心

通过通知中心:

在 DetailsViewController

func clickButtonToReloadData(){
    NotificationCenter.default.post(name: Notification.Name("ReloadDataOfTableView"), object: nil, userInfo: [:])
}

在 RootViewController 中:

override func viewDidLoad() {
   super.viewDidLoad() 
   NotificationCenter.default.addObserver(self, selector: #selector(reloadDataOfTableView), name: "ReloadDataOfTableView", object: nil)
}
    
@objc func reloadDataOfTableView(notification : NSNotification){
    self.tableView.reloadData()
}
    
override func viewWillDisappear(_ animated: Bool) {         
    NotificationCenter.default.removeObserver(self, name: "ReloadDataOfTableView", object: nil)   
}

推荐阅读