如何使用自定义按钮在 tableview 单元格中附加和删除选定的行单元格?

How to append and remove selected row cells in tableview cell with a custom button?

protocol MealCellDelegate: AnyObject {
    func didSelect(cell: MealCell)
}

class MealCell: UITableViewCell {
    
    var delegate: MealCellDelegate?

    @IBOutlet weak var checkBtn  : UIButton!

}

我有一个用于 select 函数的 UITableViewCell

我有一个如下所示的 UIViewController。

class MealSearchViewController: UIViewController {
    @IBOutlet weak var tableview : UITableView!

    tableview.delegate = self

}
extension MealSearchViewController: MealCellDelegate     {
    func didSelect(cell: MealCell) {
        if let indexPath = tableview.indexPath(for: cell) {
            let selectedItem = meals[indexPath.row]
            selectedMeals.append(selectedItem)
            
        }
    }
}

但是这段代码不起作用。 我想在单击检查按钮时附加到一个空数组(它的状态是 selected) 当我 deselect 那个按钮时,我从数组中删除。 请帮助我

小区代码:

protocol MealCellDelegate: AnyObject {
    func didSelect(cell: MealCell)
}

class MealCell: UITableViewCell {
    
    var delegate: MealCellDelegate?

    @IBOutlet weak var checkBtn: UIButton!

    @IBAction func buttonClicked() {
        delegate?.didSelect(cell: self)
    }
}

UIViewController 代码:

class MealSearchViewController: UIViewController {
    @IBOutlet weak var tableView : UITableView!
    
    override func viewDidLoad() {
        tableView.dataSource = self
    }
}

extension MealSearchViewController: UITableViewDataSource {
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        cell = *create meal cell*
        cell.delegate = self
        return cell
    }
}

extension MealSearchViewController: MealCellDelegate     {
    func didSelect(cell: MealCell) {
       *it calls after you press button in cell* 
    }
}