ios - UITableViewCell 的委托不起作用
问题描述
我有一个UITableViewCell
包含按钮的自定义。ViewController
单击按钮时,应在其中执行某些操作(在这种情况下删除单元格)UITableView
。
我尝试使用delegate
.
在我的自定义单元格中,我有
protocol CellDeleterDelegate: class {
func deleteIngredAt(index:IndexPath)
func deleteReceiptAt(index:Int)
func reloadData()
}
和
weak var delegate: CellDeleterDelegate?
和
else {
print("before Delete")
delegate?.deleteIngredAt(index: indexP)
print("after Delete")
delegate?.reloadData()
print(indexP)
}
调用所需的函数(在 else 之前,我从作为表的数据源的数组中删除数据)
在我的ViewController
我有以下代码:
class SecondViewController: UIViewController, UITableViewDataSource, UITableViewDelegate, CellDeleterDelegate{
[...]
func deleteIngredAt(index: IndexPath) {
print("reached DeleteIngred")
UIView.setAnimationsEnabled(true)
self.tableView.deleteRows(at: [index], with: .automatic)
}
func deleteReceiptAt(index:Int) {
print("reached DeleteIngred")
let indices: IndexSet = [index]
UIView.setAnimationsEnabled(true)
tableView.deleteSections(indices, with: UITableView.RowAnimation.fade)
}
func reloadData() {
print("reload reached")
tableView.reloadData()
}
但是我的任何函数都没有ViewController
被调用,我不知道为什么。我早些时候在另一个项目中使用过它,它工作得很好。
解决方案
我想你忘记打电话给 cell.delegate = self in
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
}
推荐阅读
- odoo - 如何创建具有用户身份验证的自定义控制器 - Odoo13?
- javascript - TypeError: func(...).then 不是函数
- julia - 从 Julia 中的字节向量中读取以空字符结尾的字符串
- c# - 如何在 c# 中使用 Microsoft Graph Api 上传到 OneDrive
- python - 安装聊天机器人时出错。我不知道要安装什么包来解决错误
- xcode - QRCodeReader.Swift 处从 Swift 3.0 到 Swift 4.2 的转换错误
- javascript - Flatlist React-Native 组件防止我的数组填充导致应用程序崩溃
- flutter - ListTile 不会在字幕中以水平方式显示单选按钮
- numpy - 当我在 jupyter 中导入 numpy 和 pandas 时,它在蜘蛛中给出相同的错误,但在启动新内核后蜘蛛工作
- machine-learning - 找出每一列对模型的重要性