代码之家  ›  专栏  ›  技术社区  ›  Shahbaz Akram

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

  •  0
  • Shahbaz Akram  · 技术社区  · 6 年前

    当我试图从另一个VC调用方法时 reloadData() 然后应用程序崩溃了 Fatal error: Unexpectedly found nil while unwrapping an Optional value

    FavoritesFiltersViewController.shareInstance.reloadData()
    

    enter image description here

    3 回复  |  直到 6 年前
        1
  •  10
  •   Virani Vivek    6 年前
    • 您可以将notificationCenter用于 重新加载tableView 数据来自

    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)
    

     @objc func refresh() {
    
        self.tblview.reloadData() // a refresh the tableView.
    
    }
    

    这很好用。非常感谢。

        2
  •  1
  •   FedeH    6 年前

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

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

        3
  •  0
  •   Shahbaz Akram    6 年前

    let fav:FavoritesFiltersViewController! 
     fav.reloadData()
    
    推荐文章