我试图在每次加载视图时重新加载数据,但它不起作用。代码片段:
override func viewDidLoad() {
super.viewDidLoad()
// Register cell classes
self.collectionView!.registerClass(UICollectionViewCell.self, forCellWithReuseIdentifier: "cell")
self.collectionView!.reloadData()
}
但它不起作用。
答案 0 :(得分:9)
仅在实例化视图时调用视图才执行load方法。它似乎没有被触发,因为您的转换没有实例化集合视图单元格。 (例如,你可能会从流行音乐中回来)
要强制重新加载数据,您可以尝试在视图下放置相同的代码行,每次视图即将呈现给用户时都会触发该代码。
尝试做:
override func viewWillAppear() {
super.viewWillAppear()
self.collectionView.reloadData()
}
顺序通常是,viewDidLoad,viewWillAppear,然后是viewDidAppear。
上面的代码应该修复它。如果没有,请告诉我。
答案 1 :(得分:1)
试试这个
override func viewWillAppear() {
super.viewWillAppear()
self.collectionView!.reloadData()
}
每次出现视图控制器时,都会重新加载您的集合视图。此外,您不需要在viewDidLoad()
中编写reloadData()答案 2 :(得分:1)
collectionView.collectionViewLayout.invalidateLayout()
collectionView.reloadData()
醇>