tableview how to append to empty array checked cells?

You can use the following table view delegate method, below is the code.


func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath){
     anEmptyArray.append(myTableViewData[indexPath.row])
}

Also make sure you have following line of code in your viewDidLoad method.

 tableView.delegate = self

With this approach you have to just select the cell. That's all.

Another Approach

You need to create new delegate.

protocol TableViewCellDelegate: AnyObject {
   func didSelect(cell: YourTableViewCell) // Don't need to define just declare.
}

Now create a delegate instance in UITableViewCell class, and call method inside button action.

class Cell: UITableViewCell {

    @IBOutlet weak var checkBtn     : UIButton!
    weak var delegate: TableViewCellDelegate? // Instance of Delegate protocol


    @IBAction func selectButton(_ sender: UIButton) {
        if checkBtn.isSelected == false {
            checkBtn.isSelected = true
        } else {
            checkBtn.isSelected = false
        }
        
        self.delegate?.didSelect(cell: self) // triggering the delegate method. 
    }
}

Now which code will be trigger? We need to define that. Go to your UITableViewController, and extend that class, for example

extension YourTableViewController: TableViewCellDelegate {
     func didSelect(cell: YourTableViewCell) {
       // Now you have the cell, and you can get the indexPath of this cell
         if let indexPath = tableView.indexPath(for: cell) {
            // Now you have indexPath and you know the drill.
             

            // If you want to remove that cell delete that value from array and reload tableView.
            
            myTableViewData.remove(at: indexPath.row)
            tableView.reloadData()

            
         }
     }
}

Don't forget making the cell delegate of YourTableViewController like below.

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath)   -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "exampleCell") as! YourTableViewCell

    cell.delegate = self

}