ios - 如何从不同的 TableView 刷新 TableView 中的数据

标签 ios swift uitableview

我正在开发一款游戏,您可以在其中“雇用”开发人员为您工作。基本上我有 1 个 TableView ,其中包含您可以雇用的所有可能的员工,另一个 TableView 包含您已雇用的员工。

问题是我有第三个表格 View ,您可以在其中“学习”不同的编码语言,这反过来又会改变每个开发人员可以获得的收入。

我想要完成的是当玩家按下一个按钮来学习一种新的编码语言时,为最近学习的编码语言更新一个变量,进而影响开发者赚的钱.

我已经让一切正常工作,但是为了更新我拥有的所有标签,我需要在其他 TableView 中按下“学习”按钮时重新加载 Employees TableView 中的数据。有什么建议吗??

最佳答案

使用delegation .

假设您有两个类,EmployeeTableLearnTable。通过协议(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/

相关文章:

ios - SpriteKit iPhone/iPhoneX/iPad 尺寸问题

ios - 从 appdelegate 引用已经实例化的 viewcontroller

ios - 从 NSUserDefaults 获取值时出错

swift - NSDate 变量为 nil

ios - UITableView 设置为无选择

iphone - 在iPad上创建有关用户事件的日志的最佳方法

ios - 从 ios 应用程序打开 Skype 聊天页面

ios - 允许按钮在页面 View Controller 中触发新的 View Controller - swift

ios - 无法更改 UITableViewCell 中 UIImageView 的宽度和高度 - swift

ios - 是否可以在 UITableView 中有主标题、副标题和 UITableViewStyleValue1 样式标题