从另一个 ViewController Swift 4.2 重新加载 tableView

reload tableView from Another ViewController Swift 4.2

当我尝试从另一个 VC reloadData() 调用方法时,应用程序崩溃 Fatal error: Unexpectedly found nil while unwrapping an Optional value 由于 tablview nil 如何解决它。

FavoritesFiltersViewController.shareInstance.reloadData()

检查调用 FavoritesFiltersViewController.shareInstance 时触发的初始化函数 看来您没有给 tableView 属性 赋值。

只是为了检查一下,您可以从中删除可选项,看看编译器是否因为它没有初始值而抱怨。

  • 您可以使用 notificationCenter 为来自
    重新加载 tableView 数据 另一个 viewController 如下所示:

1.您可以将此行添加到另一个 viewController.

 NotificationCenter.default.post(name: NSNotification.Name(rawValue: "newDataNotif"), object: nil)

2。将此行(viewDidLoad)添加到包含 tableView.

的 viewController
NotificationCenter.default.addObserver(self, selector: #selector(self.refresh), name: NSNotification.Name(rawValue: "newDataNotif"), object: nil)

3。添加此选择器方法以重新加载 tableView 数据。

 @objc func refresh() {

    self.tblview.reloadData() // a refresh the tableView.

}

这工作正常。谢谢。

感谢每一个 one.Finally 的研发。我找到了以下解决方案。并且工作正常。

let fav:FavoritesFiltersViewController! 
 fav.reloadData()