You might have some rows in a UITableView you don't want to be selected. OverridewillSelectRowAtIndexPath
, return nil to reject the selection, return the passed-in indexPath to use as-is, or return your choice of selected cells.- (NSIndexPath *) tableView: (UITableView *) tableView willSelectRowAtIndexPath: (NSIndexPath *) indexPath { // don't select the top row sort control. if (indexPath.row == 0) return nil; else return indexPath; } // willSelectRowAtIndexPath