2013-05-18 5 views
6

Ich erstellte eine TableView mit einer benutzerdefinierten UITableViewCell. Zu jeder Zeile der Tabellenansicht gehört eine Schaltfläche. Jetzt möchte ich auf Knopfdruck die Zeilennummer wissen, damit ich weiß, auf welche Zeilenschaltfläche geklickt wurde. Ich habe versucht, einige Dinge auf dem Stapel gefunden, aber nichts funktioniert.Wie kann man den indexPfad/die Zeile bei einem Klick auf die Schaltfläche Tabellenzelle in einem UITableView kennen?

ich diesen Code versucht haben -:

-(void)button1Tapped:(id)sender 
{ 
UIButton *senderButton = (UIButton *)sender; 
UITableViewCell *buttonCell = (UITableViewCell *)[senderButton superview]; 
UITableView* table = (UITableView *)[buttonCell superview]; 
NSIndexPath* pathOfTheCell = [table indexPathForCell:buttonCell]; 
NSInteger rowOfTheCell = [pathOfTheCell row]; 
NSLog(@"rowofthecell %d", rowOfTheCell); 
} 

Aber das ist auch nicht funktioniert.

Vielen Dank für Ihre Hilfe.

+0

Die Verwendung von Tags ist der falsche Weg. – jrturton

Antwort

20

versuchen mit dieser

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 

     static NSString *CellIdentifier = @"Cell"; 

     UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
     if (cell == nil) { 
      cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease]; 
      [[cell contentView] setBackgroundColor:[UIColor clearColor]]; 
      [[cell backgroundView] setBackgroundColor:[UIColor clearColor]]; 
      [cell.Mybutton addTarget:self action:@selector(btnCommentClick:) forControlEvents:UIControlEventTouchUpInside]; 
     } 
     cell.Mybutton.tag=indexPath.row; 
    } 

    -(void)btnCommentClick:(id)sender 
    { 
      UIButton *senderButton = (UIButton *)sender; 
      NSLog(@"current Row=%d",senderButton.tag); 
      NSIndexPath *path = [NSIndexPath indexPathForRow:senderButton.tag inSection:0]; 
    } 
+0

Es funktionierte einwandfrei! Danke! –

+0

Willkommen Kumpel ... –

+0

Dies funktioniert nicht im Falle einer geschachtelten Tabelle. wenn wir mehrere Sitzungen haben. – knocker

1

Die besten Art und Weise, welche Reihe von Tableview zu wissen, wird durch die Einstellung Variablenwert der Zelle Taste in cellForRowAtIndexPath Methode geklickt wird, während benutzerdefinierte Zelle.

Verwandte Themen