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

Sha*_*ram 2 ios xcode10 swift4.2

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

FavoritesFiltersViewController.shareInstance.reloadData()
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

Vir*_*vek 10

  • 您可以使用通知中心从 另一个 viewController重新加载 tableView数据,
    如下所示:

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

 NotificationCenter.default.post(name: NSNotification.Name(rawValue: "newDataNotif"), object: nil)
Run Code Online (Sandbox Code Playgroud)

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

NotificationCenter.default.addObserver(self, selector: #selector(self.refresh), name: NSNotification.Name(rawValue: "newDataNotif"), object: nil)
Run Code Online (Sandbox Code Playgroud)

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

 @objc func refresh() {

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

}
Run Code Online (Sandbox Code Playgroud)

这工作正常。谢谢你。