如何在swift中从另一个视图控制器重新加载tableview
当我解雇一个模式视图控制器我希望桌面更新,我使用iPad上的表单演示样式,所以viewWillAppear
和viewDidAppear
方法将无法正常工作
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)