我无法更新CollectionView
的标题视图的数据。此标头视图是UICollectionReusableView
的子类。
我尝试调用一种在不同位置重新加载此数据的方法,但没有一个触发更新。要查看更新的数据,我必须关闭并再次打开该应用程序。
收藏视图:
func collectionView(_ collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, at indexPath: IndexPath) -> UICollectionReusableView {
guard kind == UICollectionView.elementKindSectionHeader else {
fatalError("Unexpected element kind.")
}
let headerView = collectionView.dequeueReusableSupplementaryView(ofKind: kind, withReuseIdentifier: "ProfileHeaderView", for: indexPath) as! ProfileHeaderView
header?.reloadData()
// headerView.userNameLabel.text = defaults.string(forKey: "username")
return headerView
}
标题视图:
class ProfileHeaderView: UICollectionReusableView {
@IBOutlet weak var userNameLabel: UILabel!
func reloadData() {
let defaults = UserDefaults.standard
usernameTextLabel.text = defaults.string(forKey: "username")
}
我还试图打电话给reloadData()
ViewWillAppear
和ViewDidAppear
您可以尝试获取标头,例如:
func reloadHeaderData() {
guard let header = collectionView.supplementaryView(forElementKind: UICollectionView.elementKindSectionHeader, at: YourIndexPath) as? ProfileHeaderView else { return }
header.reloadData()
}