At various points during my app's execution it is required to programatically select a row of a UITableView using
[self.tableView selectRowAtIndexPath:selectedCellIndexPath animated:false scrollPosition:UITableViewScrollPositionMiddle];
This works fine and the row is highlighted and marked as selected in the backend. The table is configured to allow multiple selections.
However, if the user subsequently deselects this row the "didSelectRowAtIndexPath" function is not being called. The strange thing is, if they reselect it, the function is called again as would be expected.
Any idea what could be going wrong? Is there an additional property or something that should be reset when selecting the row?