如何在迅速

问题描述:

另一个视图控制器重装的tableview当我解雇我想实现代码如下更新,我使用iPad上的形式表呈现样式所以viewWillAppearviewDidAppear方法行不通如何在迅速

+1

你可以使用NSNotificationCenter来触发一个更新你的tableview的方法。 – Sebastian 2014-09-18 20:24:53

+0

你可以告诉我怎么样,我不是很熟悉NSNotificationCenter,谢谢 – 2014-09-18 20:28:21

夫特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) 
+0

在第二个VC在哪里? – 2017-04-25 12:58:24

+1

你的第二个视图控制器中的任何地方,你认为是时候更新tableView的可能性是:方法,viewDidLoad或在代码的任何部分..希望它有帮助 – mriaz0011 2017-04-26 18:40:18

+0

@ mriaz0011谢谢 – Alwin 2017-05-22 06:20:02

一个模式视图控制器在其他的ViewController

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() 
    } 

然后:

你可以这样做:

在你的tableView控制器

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

由于某种原因,这不适合我。我在'load data here'这一行添加了一个断点,但表格视图并没有显示添加的新数据 – 2015-03-08 22:39:31

+0

谢谢,这个完美的解决方案,我正在寻找这样的一些东西。 – 2015-11-15 07:21:26

+0

工作对我来说,我甚至从一个单独的类称为'postNotificationName'功能,甚至没有的ViewController – 2016-04-04 14:17:23

缺少逗号该线路上时,应改为:

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