ios - 单击 CollectionViewCell 时如何更新 tableView 数据( tableview.reloadData() 在 CollectionView 的 didSelectItemAt 中不起作用)

标签 ios swift uitableview uicollectionview

图片 1: enter image description here

我在同一个 View Controller 中有一个 Collection View 和一个 TableView 。我想根据 Collection View 中的选定项目更新 TableView 的数据。因此,每次我单击 collectionView 的任何项目时,我的 tableView 数据都会更新。

我的代码:

public func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
        
        for superSkill in skills!{
            if superSkill.name == (skills?[indexPath.row].name)! {
                childSkills = superSkill.skills!
            }
        }

        DispatchQueue.main.async{
            self.childSkillTableView.reloadData()
        }

    }

有什么办法可以实现吗

最佳答案

首先要确保您的 childSkillTableView.dataSource = self 和您的 superSkillsCollectionView.delegate = self

第二件事,没有理由使用DispatchQueue.main.async({})

第三件事虽然不太重要,但您可以使用类似以下的内容来代替 for 循环:

childSkills = Skills?.first(where { superSkill in superSkill.name == (skills?[indexPath.row].name)! }

尽管您应该使用一些 if letguard let 语句来检查可选值,而不是强制展开。

关于ios - 单击 CollectionViewCell 时如何更新 tableView 数据( tableview.reloadData() 在 CollectionView 的 didSelectItemAt 中不起作用),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45617231/

相关文章:

arrays - 如何快速从数组中选择一个随机十(字符串)

iphone - UITableView 查找部分标题的位置?

ios - UITableView 中的复选框

ios - 如何在 iOS 上安装同一个应用程序的两个版本?

ios - 表格 View 中的可能错误

javascript - 对 native 选择器进行样式设置-特别是文本对齐(iOS)

iphone - 让 UITableViewController 在旋转时刷新其 tableview 的最佳方法是什么?

ios - 从核心数据中获取所有记录并从每条记录中获取具有一个属性的字符串(MagicalRecord)

ios - 有没有办法访问 x-coredata ://object returned from an NSFetchRequest? 的属性

ios - 改变 SKShapeNode 的半径