当用户返回查看控制器时重新加载集合视图数据

时间:2015-08-22 13:04:42

标签: ios swift uicollectionview

我试图在每次加载视图时重新加载数据,但它不起作用。代码片段:

override func viewDidLoad() {
    super.viewDidLoad()
    // Register cell classes
    self.collectionView!.registerClass(UICollectionViewCell.self, forCellWithReuseIdentifier: "cell")
    self.collectionView!.reloadData()
}

但它不起作用。

3 个答案:

答案 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)

  1. 检查集合视图是否已初始化。
  2. collectionView.collectionViewLayout.invalidateLayout()
  3. 之后尝试collectionView.reloadData()