这是我第一次在 swift 中使用delegate
。我有一个固定三行的表格 View ,每行都有一个单独的 .xib
单元格。
我正在根据单元格中获取的数据调整每个单元格的高度。因此,由于 tableView
是在之前加载的,单元格是在之后加载的,所以我在 UITableViewCell
类中定义了一个 protocol
。
上面的CalenderTimeTableViewCell
类我已经:
protocol ReloadingTable {
func updateTableView()
}
在上面的类中 awakeFromNib()
我已经: var myDelegate: ReloadingTable?
并在我正在调用的获取数据(使用 Alamofire)的方法中self.myDelegate?.updateTableView()
。
在具有 tableView
的 viewController
中,首先我扩展了类 ReloadingTable
,并且在这个类中我:
func updateTableView() {
tableView.reloadData()
}
通过应用断点,代码确实到达了 self.myDelegate?.updateTableView()
但在 viewController
中,updateTableView
方法没有被执行已调用。
最佳答案
正如 @vadian 所评论的,你应该将目标类分配给 myDelegate
在 cellForRowAt 函数中将目标类分配给我的委托(delegate)
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell") as! CalenderTimeTableViewCell
cell.myDelegate = self
//Other
}
关于ios - 未从 UITableViewCell 调用委托(delegate)方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47305924/