如何从不同的tableview刷新tableview中的数据

mir*_*hip 1 uitableview ios swift

我正在开发一款游戏,您可以"雇用"开发人员为您工作.基本上我有1个表视图,其中包含您可以雇佣的所有可能的员工,以及另一个表格视图,其中包含您雇佣的员工.

问题是我有第三个表视图,您可以"学习"不同的编码语言,这反过来又会改变每个开发人员可以赚取的金额.

我想要完成的是当玩家按下按钮学习新的编码语言,更新已学习的最新编码语言的变量,从而影响开发人员赚取的金额.

我已经完成了所有工作,但是为了更新我拥有的所有标签,我需要在另一个表视图中按下"学习"按钮时在Employees表视图中重新加载数据.有什么建议??

cat*_*res 6

使用委托.

假设您有两个类,EmployeeTable并且LearnTable.通过协议使Employee表成为Learn表的委托.

  • LearnTable类中,在顶部添加委托协议:

    protocol LearnTableDelegate {
    
        func didUpdateTable()
    
    }
    
    Run Code Online (Sandbox Code Playgroud)
  • EmployeeTable班必须遵守协议和执行它指定的功能.通过扩展课程来遵守协议是一种很好的做法:

    extension EmployeeTable: LearnTableDelegate {
    
        func didUpdateTable() {
            // do whatever is necessary to update the table
        }
    
    }
    
    Run Code Online (Sandbox Code Playgroud)
  • LearnTable类需要一个地方来存储参考其代表,这将是可选的,因为引用不能设置:

    class LearnTable {
    
        var delegate: LearnTableDelegate?
    
    }
    
    Run Code Online (Sandbox Code Playgroud)
  • (这里我假设您是从EmployeeTable执行此操作.)在创建实例之后LearnTable和之前,添加对EmployeeTable的引用作为委托.

    let learnTable = LearnTable()
    learnTable.delegate = self
    
    Run Code Online (Sandbox Code Playgroud)