I too had this issue:
There are 3 ways to go about this with a custom cell class. The first is if you are not using storyboard, you must implement the didSelectRowAtIndexPath as you had before and has been said. I want to elaborate on the other 2 ways.
If you are using a storyboard and you have created your custom class for the cell you can either:
1) Create a .xib file and put your custom cell there.
You must create a Segue by cntrl dragging from your table view (NO prototype cells) to the next view and give it an identifier, in this case "mySegue". Then implement the below method in the table view controller.
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[self performSegueWithIdentifier:@"mySegue" sender:self];
}
2) Use a prototype cell. In this case, you add a prototype cell by selecting your table view and incrementing prototype cells to 1, and give it the proper identifier (In the below example it's CellTableIdentifier and then make the prototype cell look as you want with labels and all. Then you make the outlets for the labels to your cell class as you did with your xib file. Now your code is cleaner as you don't need the above method. You just have to make the same call that should be in all the example in the cellForRowAtIndexPath method... mine looks like:
myTableViewCell *cell = (myTableViewCell *)[tableView dequeueReusableCellWithIdentifier:CellTableIdentifier
forIndexPath:indexPath];
Then you just cntrl drag from the prototype cell to the next view.