Based on my own comment, but skipping the delegate part as it is not necessary.
Public property on the cell-subclass:
@property (nonatomic, strong) NSIndexPath *indexPath;
Set this from the datasource when returning cell for indexPath...
Inside your else:
UITableView *tableView = (UITableView *) self.superview;
[tableView.delegate didSelectRowAtIndexPath:self.indexPath];