2009-07-16 3 views
0

Ich bin ein Neuling.benutzerdefinierte UITableViewCell Artikel Probleme

Ich habe eine benutzerdefinierte UITableViewCell mit 3 Artikel:

ein UILabel ein UITextField und ein UIButton

Meine Frage ist, wie kann ich aus welcher Zelle kennen die Schaltfläche geklickt wurde oder Textfield bearbeitet wurde?

Gibt es eine Möglichkeit, sie zu verfolgen?

Vielen Dank für alle Antworten.

Antwort

1

Nach der Konfiguration der benutzerdefinierten Zelle wird normalerweise der NSIndexPath der Zelle im Titel der Schaltfläche für den Status UIControlStateApplication gespeichert.

In Ihrem Tableview: cellForRowAtIndexPath: Methode, bei der Konfiguration der Zelle:

[theButton setTitle:(NSString *)indexPath forState:UIControlStateApplication]; 

Dann Aktion in Ihrem Button:


- (IBAction) buttonWasClicked:(UIButton *) senderButton { 
    NSIndexPath *indexPath; 

    indexPath = (NSIndexPath *)[senderButton titleForState:UIControlStateApplication]; 

    NSLog(@"Sender button was clicked in cell at NSIndexPath section: %d row: %d ", [indexPath section], [indexPath row]); 
} 

Ich bin nicht wirklich glücklich mit dieser Art und Weise. Wenn jemand einen saubereren Weg hat, würde ich es gerne hören.

1

Wenn Sie nur einen Abschnitt haben, können Sie den indexPath.row im speichern und in der Aktion abrufen, die durch diesen Knopf ausgelöst wird.