2011-01-05 7 views

Antwort

4

Implementieren tableView:didSelectRowAtIndexPath: in Ihrem Tabellenansicht Delegierten helfen, die Zelle greifen Dies wurde mit [tableView cellForRowAtIndexPath:indexPath] ausgewählt und das Zubehör auf UITableViewCellAccessoryCheckmark eingestellt.

Wenn Sie etwas Ähnliches wie die Mehrwerttabelle Ansichten in der App Einstellungen implementieren möchten, was ich tue, ist eine Eigenschaft verwenden, um zu verfolgen, was bereits ausgewählt:

@property (nonatomic, retain) NSIndexPath *selectedIndexPath; 

Im gleichen Delegatmethode ich das Häkchen aus der Zelle bei der Auswahl, fügen Sie das Häkchen in der Zelle entfernen, die die Eigenschaft mit dem Index der Zelle angezapft und aktualisieren wurde:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    UITableViewCell *oldCell = [tableView cellForRowAtIndexPath:self.selectedIndexPath]; 
    [oldCell setAccessory:UITableViewCellAccessoryNone]; 

    UITableViewCell *newCell = [tableView cellForRowAtIndexPath:indexPath]; 
    [newCell setAccessory:UITableViewCellAccessoryCheckmark]; 

    [self setSelectedIndexPath:indexPath]; 

    [tableView deselectRowAtIndexPath:indexPath animated:YES]; 
} 

einen Schritt weiter zu gehen, Sie einen Weg finden können den Indexpfad in Ihrer App beibehalten (möglicherweise unter Verwendung von NSUserDefaults und in tableView:cellForRowAtIndexPath: wenden Sie das Häkchen auf die Zelle an, die diesem Indexpfad entspricht, sodass Ihr Häkchen beim Laden der Ansicht angezeigt wird.

+0

Problem ist, dass dies mehr wählen als eine, aber ich möchte nur eine Zeile setzen überprüfen auf – Ali

+0

sehr nette Antwort, Dank – Ali

Verwandte Themen