我正在开发一款游戏,您可以在其中“雇用”开发人员为您工作。基本上我有 1 个 TableView ,其中包含您可以雇用的所有可能的员工,另一个 TableView 包含您已雇用的员工。
问题是我有第三个表格 View ,您可以在其中“学习”不同的编码语言,这反过来又会改变每个开发人员可以获得的收入。
我想要完成的是当玩家按下一个按钮来学习一种新的编码语言时,为最近学习的编码语言更新一个变量,进而影响开发者赚的钱.
我已经让一切正常工作,但是为了更新我拥有的所有标签,我需要在其他 TableView 中按下“学习”按钮时重新加载 Employees TableView 中的数据。有什么建议吗??
最佳答案
使用delegation .
假设您有两个类,EmployeeTable
和 LearnTable
。通过协议(protocol)使 Employee 表成为 Learn 表的委托(delegate)。
在
LearnTable
类中,在顶部添加委托(delegate)协议(protocol):protocol LearnTableDelegate { func didUpdateTable() }
EmployeeTable
类必须遵守协议(protocol)并实现其指定的功能。通过类的扩展来遵守协议(protocol)是一种很好的做法:extension EmployeeTable: LearnTableDelegate { func didUpdateTable() { // do whatever is necessary to update the table } }
LearnTable
类需要一个地方来存储对其委托(delegate)的引用,这将是可选的,因为可能未设置引用:class LearnTable { var delegate: LearnTableDelegate? }
(这里我假设您是从 EmployeeTable 执行此操作。)在创建
LearnTable
的实例之后,在继续进入 in 之前,将对 EmployeeTable 的引用添加为委托(delegate)。let learnTable = LearnTable() learnTable.delegate = self
关于ios - 如何从不同的 TableView 刷新 TableView 中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36414621/