2017-03-27 1 views
-1

Ich habe Optionen wie:swift ** ** willSelectRowAtIndexPath aktivieren und deaktivieren Optionen

  1. Keine
  2. einmal
  3. Jedes Mal hatten
  4. Irgendwann

jetzt, wenn keiner ist ausgewählt Ich möchte, dass andere Optionen deaktiviert werden, und deaktivieren Sie keine, wenn eine der Optionen oder alle ausgewählt sind. Ich habe

func tableView (tableView: UITableView, willSelectRowAtIndexPath indexPath: NSIndexPath) -> NSIndexPath? { 

    // first 3 rows in any section should not be selectable 
    if indexPath.row <= 1 { 
     return nil 
    } 

    return indexPath 
} 

Dies lässt mich getan nur andere außer keiner wählen. Wie kann ich meine Anforderungen erfüllen? Irgendwelche Ideen werden wirklich appericiated.

Danke.

+0

was ist Ihre Anforderung? Kannst du bitte mehr erklären? –

Antwort

1

eine globale Variable Nehmen Sie den Überblick über die aktuell ausgewählte Zeile zu halten und den Code in Ihrem willSelectRowAtIndexPath Verfahren wie folgt zu ändern:

var selectedRow = -1 //Global Variable 

public func tableView(_ tableView: UITableView, willSelectRowAt indexPath: IndexPath) -> IndexPath? 
{ 
    if(indexPath.row>0 && selectedRow == 0) //When "None" option row is selected & user tries to select any other row. 
    { 
     return nil 
    } 

    else if(indexPath.row == 0 && selectedRow > 0) //When any row other than "None" is selected and user tries to select "None" option row 
    { 
     return nil 
    } 
     else //When no row is selected or rows other than "None" are selected and user tries to select any row other than "None" row. 
     { 
      selectedRow = indexPath.row 
      return indexPath 
     } 
} 

Getestet den obigen Code und seine Arbeits nach Ihren Wünschen. Lass es mich wissen, wenn du das suchst. Prost.

+0

Sorry für späte Antwort. Es funktioniert. aber was passiert, wenn ich keine auswähle alle anderen Optionen können nicht ausgewählt werden das ist was ich wollte. aber wieder, wenn ich keine Auswahl abnehme, können andere Optionen nicht ausgewählt werden. – iron

+0

Hinzufügen einer Delegierten-Delegiertenfunktion von tableview hinzufügen und selectedRow = -1 setzen, wenn eine Zeile abgewählt wird, wird der Code wie von Ihnen benötigt funktionieren. – Rahul

Verwandte Themen