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

时间:2018-12-20 16:54:37

标签: ios xcode10 swift4.2

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

FavoritesFiltersViewController.shareInstance.reloadData()

enter image description here

3 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

  • 您可以将NotificationCenter用于
    来自
    reload 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.

}

这很好。谢谢。

答案 2 :(得分:0)

谢谢大家。最后经过研发。我发现以下解决方案。及其工作正常。

let fav:FavoritesFiltersViewController! 
 fav.reloadData()