如何在swift中从另一个视图控制器重新加载tableview

当我解雇一个模式视图控制器我希望桌面更新,我使用iPad上的表单演示样式,所以viewWillAppearviewDidAppear方法将无法正常工作

Swift 3版本代码:在你的第一个视图控制器:

 override func viewDidLoad() { super.viewDidLoad() NotificationCenter.default.addObserver(self, selector: #selector(loadList), name: NSNotification.Name(rawValue: "load"), object: nil) } func loadList(){ //load data here self.tableView.reloadData() } 

在你的第二个视图控制器:

 NotificationCenter.default.post(name: NSNotification.Name(rawValue: "load"), object: nil) 

你可以这样做:

在你的tableView控制器中:

  override func viewDidLoad() { super.viewDidLoad() NotificationCenter.default.addObserver(self, selector: #selector(loadList), name: NSNotification.Name(rawValue: "load"), object: nil) } func loadList(notification: NSNotification){ //load data here self.tableView.reloadData() } 

然后在另一个ViewController中:

  NotificationCenter.default.post(name: NSNotification.Name(rawValue: "load"), object: nil) 

在这一行中缺less逗号,应该是:

  NSNotificationCenter.defaultCenter().addObserver(self, selector: "loadList:",name:"load", object: nil)