http://discussions.apple.com/thread.jspa?threadID=1765684 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { [tableView deselectRowAtIndexPath:[tableView indexPathForSelectedRow] animated:NO]; switch(indexPath.section) { case 0: { UITableViewCell *cell1 = [tableView cellForRowAtIndexPath:indexPath]; UITableViewCell *cell2 = [tableView cellForRowAtIndexPath:oldIndexPath1]; cell1.accessoryType = UITableViewCellAccessoryCheckmark; cell2.accessoryType = UITableViewCellAccessoryNone; oldIndexPath1 = indexPath; // Set model-object attribute associated with row break; } case 1: { UITableViewCell *cell3 = [tableView cellForRowAtIndexPath:indexPath]; UITableViewCell *cell4 = [tableView cellForRowAtIndexPath:oldIndexPath2]; cell3.accessoryType = UITableViewCellAccessoryCheckmark; cell4.accessoryType = UITableViewCellAccessoryNone; oldIndexPath2 = indexPath; // Set model-object attribute associated with row break; } case 2: // This one will push the view controller break; default: break; } [tableView reloadData]; } http://www.iphonedevsdk.com/forum/iphone-sdk-development/7391-uitableviewcell-repeat-every-12-rows.html - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier = @"Cell"; UITableViewCell *cell; if (indexPath.section == 0 && indexPath.row == 0) { cell = [tableView dequeueReusableCellWithIdentifier:TextFieldCellIdentifier]; if (cell == nil) { cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:TextFieldCellIdentifier] autorelease]; // subclass a textfield for the first tableview cell UITextField *textField = [[UITextField alloc] initWithFrame:CGRectMake(3, 3, cell.frame.size.width - 26, cell.frame.size.height - 7)]; textField.autocorrectionType = UITextAutocorrectionTypeNo; textField.borderStyle = UITextBorderStyleRoundedRect; [cell.contentView addSubview:textField]; [textField release]; } // you need to set the text for the textField here } else { cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if (cell == nil) { cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease]; } [cell setText:@"My text goes here"]; } return cell; } http://discussions.apple.com/thread.jspa?threadID=1602915 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)newIndexPath { UITableViewCell *newCell = [tableView cellForRowAtIndexPath:newIndexPath]; if (newCell.accessoryType == UITableViewCellAccessoryNone) { newCell.accessoryType = UITableViewCellAccessoryCheckmark; // Set model-object attribute associated with row } oldIndexPath=newIndexPath; UITableViewCell *oldCell = [tableView cellForRowAtIndexPath:oldIndexPath]; if (oldCell.accessoryType == UITableViewCellAccessoryCheckmark) { oldCell.accessoryType = UITableViewCellAccessoryNone; // Unset model-object attribute associated with row } } http://runtimebrowser.googlecode.com/svn-history/r40/trunk/iPhone/Classes/FrameworksController.m