swiftuitableviewuibuttontableviewdidselectrowatindexpath

Swift - Clicked button inside tableview cell does not call the did select row at function of that cell


I creating a tableview programatically and each tableview cell have buttons associated to them.

If I click the row I can work out the tag associated with the buttons on that row and then able to edit the title when applying some other functions.

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    TmpActionConnectorTag = indexPath.row + 700 //Tag associated to button
}

When the button is clicked , I have this code which changes the other button on that row

let tag = TmpActionConnectorTag
    let tmpButton = self.view.viewWithTag(tag) as? UIButton

The issue is if I directly click on the button in the tableview cell, the did select row does not get call and no tag value is given. To do it I have to click within the cell first and then the button to be able to know the tag associated with the row.

Is there a way to workout the index row when the button is clicked so I don't have to click the actual cell?

enter image description here

above is how the cell looks normally and below shows how the cell has to be selected to be able to get the index value.

enter image description here


Solution

  • Button action won't call the didSelectRowAt. You should go for delegate method. If not aware about delegate means refer this