如何在swift 3中使用out segues从另一个视图控制器更新表视图?

时间:2017-01-31 12:54:36

标签: uitableview swift3 viewcontroller

如果我从互联网上下载视频,完成某些操作后,如何从选项卡式应用程序项目中的另一个视图控制器更新表视图。我需要当这个下载完成另一个视图控制器更新auto中的表视图时,我尝试制作但我不能。

以下是我的代码:

let getControllers = self.parent?.tabBarController?.customizableViewControllers
let navigationController = getControllers?[2] as! UINavigationController
let videoViewController = navigationController.viewControllers[0] as! VideoFolderListViewController
 videoViewController.tableView.reloadData()

但这不起作用,我不知道并且不更新表格视图。

请帮帮我

非常感谢...

1 个答案:

答案 0 :(得分:1)

您可以像这样使用NotificationCenter:

class FirstViewController : UIViewController {

    func someAction (){
        NotificationCenter.default.post(name: Notification.Name("UPDATED_DATA"), object: nil) // post updated data
    }

}


class TableViewController : UITableViewController {
    override func viewDidLoad() {

    }

    override func viewDidAppear(_ animated: Bool) {
        NotificationCenter.default.addObserver(self,
                                               selector: #selector(updated_data),
                                               name:Notification.Name("UPDATED_DATA"),
                                               object: nil)//register for notification
    }

    override func viewDidDisappear(_ animated: Bool) {
        NotificationCenter.default.removeObserver(self)
    }

    func updated_data(notification:Notification) -> Void{
        tableView.reloadData() // update data here
    }
}