SWIFT - table.reloadData()没有/停止工作
问题描述:
我想在SWIFT 3中使用table.reloadData()来刷新tableView。 我设法让它在一段时间前工作,但现在它只是停止工作蓝色。没有错误,没有警告,什么都没有。SWIFT - table.reloadData()没有/停止工作
override func viewWillAppear(_ animated: Bool)
{
print("MainVC > viewWillAppear")
super.viewWillAppear(animated)
initializeCollectionView()
}
func initializeCollectionView()
{
print("MainVC > initializeCollectionView")
projectsArray = []
getDocumentDirectoryContent()
if(projectsArray.count > 0)
{
print(projectsArray.count)
//For testing only - To make sure the array is not empty
for var i in 0..<projectsArray.count
{
print(projectsArray[i].project_name)
}
cvProjects.isHidden = false
ivMainVCPlaceholder.isHidden = true
}
else
{
cvProjects.isHidden = true
ivMainVCPlaceholder.isHidden = false
cvProjects.reloadData()
}
}
每次应用程序启动,它调用它从documentDirectory
抓住数据和projectsArray
阵列对象罢了。这工作得很好。
的initializeCollectionView
被称为viewWillAppear
因为tableView
也应该在孩子viewController
被驳回被刷新。它也被称为自来水:
@IBAction func btnRefreshCollectionAction(_ sender: Any)
{
print("MainVC > btnRefreshCollectionAction")
initializeCollectionView()
}
的问题是,现在的表不会刷新既不当孩子viewController
辞退,也不当我btnRefreshCollectionAction
挖掘。
但是,projectsArray
数组在initializeCollectionView
中不为空。
我的第一个想法是责备我在注意到这个停止工作之前执行的Xcode升级,但通常如果在升级之后有任何问题存在警告和/或错误。
任何想法?
答
这是因为只有当数组为空时才调用reload方法。当你有一个数组中的对象时,你正在执行一些其他的代码,但不能重新加载。或者在viewWillAppear
中写入重载方法,或者也可以在If
条件中重载方法。这应该工作。
那么你只在'projectsArray.count'为0时调用'reloadData'。 – dan
所以这可能是一个粗略的观察,但是如果你获取的对象的数量大于0,你不应该重新加载数据?因为从我提供的代码中可以看到,如果数组不是空的,则不会重新加载! –
现在我感到哑巴:|我一直在盯着它。谢谢你们:D – daydr3am3r