我有一个UITableView
,单元格显示从我的后端获取的数据。我可以从包含我的tableview的视图控制器导航到不同的视图控制器。当我使用tableview切换回我的视图控制器时,我想用更新的获取请求更新表。
截至目前,我有:
override func viewDidLoad() {
self.fetchData()
self.dataTable.reloadData()
}
override func viewWillAppear(animated: Bool)
{
self.fetchData()
self.dataTable.reloadData()
}
这只会导致tableview冗余并显示相同的数据(显然)。在不显示相同信息的情况下更新表的正确方法是什么?我应该在每次获取请求之前从先前的获取请求中清除数组吗?
答案 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语句,以查看所调用的内容以及不调用的内容。如果这有帮助,请告诉我:)