获取请求后的冗余tableview

时间:2016-06-17 00:14:05

标签: ios swift uitableview

我有一个UITableView,单元格显示从我的后端获取的数据。我可以从包含我的tableview的视图控制器导航到不同的视图控制器。当我使用tableview切换回我的视图控制器时,我想用更新的获取请求更新表。

截至目前,我有:

override func viewDidLoad() {
    self.fetchData()
    self.dataTable.reloadData()
}

override func viewWillAppear(animated: Bool)
{

    self.fetchData()
    self.dataTable.reloadData()

}

这只会导致tableview冗余并显示相同的数据(显然)。在不显示相同信息的情况下更新表的正确方法是什么?我应该在每次获取请求之前从先前的获取请求中清除数组吗?

1 个答案:

答案 0 :(得分:1)

您必须记住,viewDidLoad()仅在导航segues期间调用一次。所以,在加载之后,你才知道视图再次弹出的唯一时间是在viewWillAppear()中。

你试过了吗?

override func viewWillAppear(animated: Bool)
{
    self.clearData()
    //Once you've reset all your variables, populate them again. 
    self.fetchData()
    self.audioData.reloadData()
    self.dataTable.reloadData()

} 

如果我错了,并且每次出现视图时都会调用viewDidLoad()方法,那么您的代码应该可以正常工作。您始终可以在每个函数中放置print语句,以查看所调用的内容以及不调用的内容。如果这有帮助,请告诉我:)