Please help me figure it out. There is a custom class describing the cell and there is a button. It is necessary that by clicking on the button, this cell is deleted.
import UIKit import RealmSwift class PurchesViewController: UIViewController, UITableViewDelegate, UITableViewDataSource { @IBOutlet weak var purchesTableView: UITableView! let manage = ManagerData() override func viewDidLoad() { super.viewDidLoad() purchesTableView.delegate = self purchesTableView.dataSource = self } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() } override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) purchesTableView.reloadData() } func numberOfSections(in tableView: UITableView) -> Int { return manage.loadPurchases().0.count } func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? { return manage.loadPurchases().0[section] } func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return manage.loadPurchases().1[section].count } func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCell(withIdentifier: "purchesCell", for: indexPath) as! CustomPurchesTableViewCell cell.productLabel.text = manage.loadPurchases().1[indexPath.section][indexPath.row] cell.weightProductLabel.text = manage.loadPurchases().2[indexPath.section][indexPath.row] cell.weightNameLabel.text = manage.loadPurchases().3[indexPath.section][indexPath.row] // cell.boughtButton.addTarget(self, action: #selector(removeProduct), for: .touchUpInside) return cell } } class CustomPurchesTableViewCell: UITableViewCell { @IBOutlet weak var boughtButton: UIButton! @IBOutlet weak var productLabel: UILabel! @IBOutlet weak var weightProductLabel: UILabel! @IBOutlet weak var weightNameLabel: UILabel! @IBAction func removePurches(_ sender: Any) { print("remove") } } data acquisition method
func loadPurchases() -> ([String], Array<Array<String>>, Array<Array<String>>, Array<Array<String>>) { var sections: [String] = [] var product = Array<Array<String>>() var weight = Array<Array<String>>() var nameWeight = Array<Array<String>>() let realm = try! Realm() let data = realm.objects(Purches.self) for item in data { if sections.contains(item.nameDish) == false { sections.append(item.nameDish) } } for a in sections { var productArr = Array<String>() var weightArr = Array<String>() var nameWeightArr = Array<String>() for prod in data { if a == prod.nameDish { productArr.append(prod.product) weightArr.append(prod.weight) nameWeightArr.append(prod.nameWeigh) } } product.append(productArr) weight.append(weightArr) nameWeight.append(nameWeightArr) } return (sections, product, weight, nameWeight) }