尝试创建一个委托。 (我假设你知道,如果不看一下关于委托和协议的苹果文档)
所以我建议的想法是创建一个将在您的 UITableViewController(或符合 UITableViewDelegate 协议的 UIViewController)中实现的函数
首先尝试在您的 CustomCell.swift 文件之上添加一个协议。
protocol CustomCellUpdater: class { // the name of the protocol you can put any
func updateTableView()
}
然后在您的 CustomCell.swift 中:
weak var delegate: CustomCellUpdater?
func yourFunctionWhichDoesNotHaveASender () {
...
delegate?.updateTableView()
}
之后在您的UITableViewController(或同等学历)中
func updateTableView() {
tableView.reloadData() // you do have an outlet of tableView I assume
}
最后让你的UITableview 类符合CustomCellUpdater 协议
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "yourIdentifier", for: indexPath) as! YourTableViewCell
cell.delegate = self
}
理论上它应该可以工作。如果我遗漏了什么,请告诉我