2012-04-05 11 views
1

Wie üblich, wenn eine Tableviewcell berührt wird, wird es ausgewählt. Aber jetzt brauche ich eine Zelle in meiner Tabellenansicht, die niemals ausgewählt wird. Wie kann ich verbieten, eine Tabellenansichtszelle auszuwählen?Wie kann ich verbieten, dass eine TableView-Zelle ausgewählt wird

Nach dem Ändern der didSelectRowForIndexPath: Methode. Es funktioniert jetzt. Thx ALl :) Sobald die Zelle (muss verboten werden) ausgewählt ist, verwende ich nur die selectRowAtIndexPath Methode, um die ehemalige ausgewählte Zelle auszuwählen, die erneut ausgewählt wird.

Antwort

1

In Ihrer didSelectRowForIndexPath: Methode können Sie überprüfen, ob die Zelle Ihre Qualitätsstandards und entsprechend erfüllt, ein UIAlertView zeigen oder gehen Sie vor, wenn sie die Anforderungen

+0

Ja, ich änderte didSelectRowForIndexPath: Methode. Es funktioniert jetzt. thx :) Sobald die Zelle (muss verboten werden) ausgewählt ist, verwende ich nur die selectRowAtIndexPath Methode, um die vorher ausgewählte Zelle auszuwählen, die erneut ausgewählt werden soll. –

1

Sie können die Benutzerinteraktion für genau diese Zelle deaktivieren oder die Auswahl Stil None für diese Zelle festlegen. Ich hoffe, das hilft!

+0

, wenn die Interaktion mit dem Benutzer deaktiviert ist, wird der Schalter in der Zelle konnte nicht Antwort auf meine Berührung. –

1

In Ihrem -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath Methode fügen Sie die folgende Zeile in die Zelle, die Sie nicht wählbar sein wollen:

cell.selectionStyle = UITableViewCellSelectionStyleNone; 

Hoffe, es hilft

EDIT

Und in Ihrem -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath Methode hinzufügen folgendes zu Beginn:

if (indexPath == indexPathOfTheCellThatShouldntBeSelected) return; 
+0

die Zelle kann immer noch ausgewählt werden, aber einfach ohne Stil. danke alle gleich :) –

+0

@ Luyuan bitte einen Blick auf den Bearbeitungsteil. Haben Sie danach gesucht? – Novarg

+0

noch nicht :), ich habe gerade das Problem behoben, und fügte die Lösung in meinem Post :) –

2

Der richtige Weg tableView:willSelectRowAtIndexPath: zu verwenden ist erfüllt.
Im Gegensatz zu allen anderen Antworten wird dies mit segues arbeitet auch ;-)

- (NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    if (indexPath should not be selected) { 
     // if another indexPath should be selected instead return this indexPath 
     return nil; 
    } 
    return indexPath; 
} 
+0

Bezieht sich dies auf Übergänge? Es scheint nicht zu funktionieren, weiß nicht warum. Aber tableView: willSelectRowAtIndexPath: ist wirklich eine nützliche Methode, thx :) –

Verwandte Themen