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

Ios 如何从不同的tableview刷新tableview中的数据,ios,swift,uitableview,Ios,Swift,Uitableview,我正在开发一款游戏,你可以“雇佣”开发者为你工作。基本上,我有一个表视图,其中包含您可以雇佣的所有可能的员工,还有一个表视图,其中包含您雇佣的员工 问题是,我有第三个表视图,您可以在其中“学习”不同的编码语言,这反过来会改变每个开发人员可以赚取的金额 我试图做到的是,当玩家按下一个按钮学习一种新的编码语言,为最近学习的编码语言更新一个变量,从而影响开发者的收入 我已经完成了所有的工作,但是为了更新我所有的标签,当在另一个表视图中按下“学习”按钮时,我需要在Employees表视图中重新加载数据。

我正在开发一款游戏,你可以“雇佣”开发者为你工作。基本上,我有一个表视图,其中包含您可以雇佣的所有可能的员工,还有一个表视图,其中包含您雇佣的员工

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

我试图做到的是,当玩家按下一个按钮学习一种新的编码语言,为最近学习的编码语言更新一个变量,从而影响开发者的收入


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

你有什么代码给我们看吗

尝试使用NSNotificationCenter向其他视图控制器发送通知。比如说,

在从调用重载的类中添加此

NSNotificationCenter.defaultCenter().postNotificationName("reloadTableView" object: self)
在要刷新的表视图的类中,将此添加到已加载的视图中

NSNotificationCenter.defaultCenter().addObserver(
self,
selector: "refresh",
name: "reloadTableView",
object: nil)
然后在同一个类中有一个名为“刷新”的函数


你有代码给我们看吗

尝试使用NSNotificationCenter向其他视图控制器发送通知。比如说,

在从调用重载的类中添加此

NSNotificationCenter.defaultCenter().postNotificationName("reloadTableView" object: self)
在要刷新的表视图的类中,将此添加到已加载的视图中

NSNotificationCenter.defaultCenter().addObserver(
self,
selector: "refresh",
name: "reloadTableView",
object: nil)
然后在同一个类中有一个名为“刷新”的函数


我建议您继续并使用“学习”按钮触发
iAction
,然后使用
tableView.reloadData()
重新加载另一个
UITableView
。如果您需要在不同的ViewController中触发此操作,我将继续使用
NSNotificationCenter

我建议您继续使用learn按钮触发
iAction
,然后使用
tableView.reloadData()
重新加载另一个
UITableView
。如果您需要在不同的ViewController中触发此操作,我将继续使用
NSNotificationCenter

使用

假设您有两个类,
EmployeeTable
LearnTable
。通过协议使Employee表成为Learn表的代表

  • LearnTable
    类中,在顶部添加代理协议:

    protocol LearnTableDelegate {
    
        func didUpdateTable()
    
    }
    
  • EmployeeTable
    类必须遵守协议并实现其指定的功能。通过对类的扩展遵守协议是一种良好的做法:

    extension EmployeeTable: LearnTableDelegate {
    
        func didUpdateTable() {
            // do whatever is necessary to update the table
        }
    
    }
    
  • LearnTable
    类需要一个位置来存储对其委托的引用,这是可选的,因为引用可能未设置:

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

    let learnTable = LearnTable()
    learnTable.delegate = self
    
    • 使用

      假设您有两个类,
      EmployeeTable
      LearnTable
      。通过协议使Employee表成为Learn表的代表

      • LearnTable
        类中,在顶部添加代理协议:

        protocol LearnTableDelegate {
        
            func didUpdateTable()
        
        }
        
      • EmployeeTable
        类必须遵守协议并实现其指定的功能。通过对类的扩展遵守协议是一种良好的做法:

        extension EmployeeTable: LearnTableDelegate {
        
            func didUpdateTable() {
                // do whatever is necessary to update the table
            }
        
        }
        
      • LearnTable
        类需要一个位置来存储对其委托的引用,这是可选的,因为引用可能未设置:

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

        let learnTable = LearnTable()
        learnTable.delegate = self