如果我从互联网上下载视频,完成某些操作后,如何从选项卡式应用程序项目中的另一个视图控制器更新表视图。我需要当这个下载完成另一个视图控制器更新auto中的表视图时,我尝试制作但我不能。
以下是我的代码:
let getControllers = self.parent?.tabBarController?.customizableViewControllers
let navigationController = getControllers?[2] as! UINavigationController
let videoViewController = navigationController.viewControllers[0] as! VideoFolderListViewController
videoViewController.tableView.reloadData()
但这不起作用,我不知道并且不更新表格视图。
请帮帮我
非常感谢...
答案 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
}
}