在swift中调用dismissViewController后如何调用重载表视图?

时间:2015-07-28 19:00:52

标签: ios swift

我的问题几乎与此处的问题相同:How to call viewDidLoad after [self dismissModalViewControllerAnimated:YES];

我很确定答案正是我所需要的。我有一个ViewController(我们称之为A)有一个任务列表。当您单击A中表视图中的任务时,它会以模态方式显示另一个ViewController(B)。当我完成B上的任务时,我想通过调用dismissViewController返回A,但是如何重新加载表?

该表正在从REST API提供数据,因此我不认为只删除该行将起作用。我将需要调用REST API来获取任务列表,然后重新加载表视图。

我在Obj C中不是很了解,所以我在翻译时遇到了麻烦。 这是我认为需要做的事情。

为B ViewController委托制作协议。 使ViewController成为BViewController的委托并填写该协议。

我的问题是B ViewController和B ViewController委托如何链接?在B ViewController中有没有办法说这个动作发生了,所以A知道它做了什么?

2 个答案:

答案 0 :(得分:2)

您可以尝试的是

override func viewWillAppear(animated: Bool) {
    super.viewWillAppear(animated)
    self.tableView.reloadData() //or whatever your reload data function is
}

答案 1 :(得分:2)

许多方法可以解决这个问题,但最简单的方法可能是覆盖tableViewController中的viewWillAppear并将reloadData调用放在那里。

override func viewWillAppear(animated: Bool) {
    super.viewWillAppear(animated)
    tableView.reloadData()
}
每次在屏幕上显示viewController时都会调用

viewWillAppear,所以每当你回到tableViewController时,它都会被调用,你的对象将被重新加载。