2016-12-03 1 views
2

Ich habe 2 Radiobutton männlich, weiblich. Ich habe alles gemacht .. wenn ich versuche, männliche, weibliche Radiobuton auszuwählen. Es ist überhaupt nicht Auswahl. Hier mein Code:Radio-Button ändert sich nicht durch die Auswahl

@IBOutlet var btn_male: UIButton! // create outlet for radio button 
@IBOutlet var btn_female: UIButton! 

@IBAction func btn_male_female_click(sender: UIButton) { 
     switch sender.tag { 
     case 10: 
      //male select 
      if (sender.selected == true) { 
       sender.selected = false; 
       btn_male.selected = true; 
       btn_female.selected = false; 
       gender = "1" 
       print("male selected") 

      }else{ 
       sender.selected = true; 
       btn_male.selected = false; 
       btn_female.selected = true; 
       gender = "2" 
       print("female selected") 
      } 
      break; 
     case 20: 
      //female select 
      if (sender.selected == true) { 
       sender.selected = false; 
       btn_female.selected = true; 

       btn_male.selected = false; 
       gender = "2" 
       print("female selected") 
      }else{ 
       sender.selected = true; 
       btn_female.selected = false; 
       btn_male.selected = true; 
       gender = "1" 
       print("male selected") 
      } 

      break; 
     default: 
      break; 
     } 
    } 

Ich weiß nicht, warum nicht auswählen. Um die Bilder zu ändern, änderte ich die Statuskonfiguration zu ausgewählt und ich behielt das ausgewählte Radio-Bild.

Aber mein Problem ist, es ist nicht überhaupt selecting.Please mir helfen out.Thanks

UPDATE:

Nachdem ich diese Lösung aktualisieren. Ich überprüfe einfach von meinem DB und ich schaue, welches Geschlecht für bestimmten Benutzer sie bereits speichern. Aber ich habe ein Problem.

Zum Beispiel, wenn ich männlich auswähle und ich es speichern. Und wenn ich zu meinem Profilbildschirm zurückkehre, erscheint mein männlicher Knopf wie vorgewählt. Dieses kommt von db kein Problem darin. Aber wenn ich den Radioknopf von männlich zu weiblich ändern möchte, und wenn ich weiblichen Radioknopf drücke. Mein männlicher Radioknopf ist immer noch so gewählt, es ändert sich nicht, um die Auswahl aufzuheben. Wenn ich das zwei Mal mache, ändert sich das.

@IBAction func btn_male_female_click(sender: UIButton) { 
     self.selectedButton.selected = false 
     self.selectedButton = sender 
     self.selectedButton.selected = true 
     gender = "male" 
     if sender == btn_female { 
      gender = "female" 
     } 
     else if sender == btn_male { 

      gender = "male" 
     } 
} 
override func viewDidAppear(animated: Bool) { 
     super.viewDidAppear(true) 

if profileData.Gender .isEmpty { 





     }else{ 
      if profileData.Gender == "male" 
      { 
       self.btn_male.selected = true 
       self.btn_female.selected = false 
      } 
      else if profileData.Gender == "female" 
      { 
       self.btn_male.selected = false 
       self.btn_female.selected = true 
      } 

     } 
} 
+0

Ändern der Bild Hilfe wird, weisen Sie mit 'setImage: ...' Methode, Du brauchst also zwei Bilder. –

+0

es funktioniert bereits gut mack mit diesem Code –

+0

@mack in Ihrem Fall verwenden Sie einige Bibliothek für diese, so müssen Sie Code entsprechend dieser Bibliothek schreiben. –

Antwort

2

Sie können dieses Problem ein weiteres erklären, indem Sie einfach die Schaffung lösen Instanz UIButton, die die ausgewählte Taste zwischen diesen beiden Taste wie folgt aus hält.

@IBOutlet var btn_male: UIButton! // create outlet for radio button 
@IBOutlet var btn_female: UIButton! 
var selectedButton = UIButton() 

Verwenden Sie jetzt die Schaltfläche Aktion wie folgt.

@IBAction func btn_male_female_click(sender: UIButton) { 
    self.selectedButton.selected = false 
    self.selectedButton = sender 
    self.selectedButton.selected = true 
    gender = "1" 
    if sender == btn_female { 
     gender = "2" 
    } 
} 

Edit: Sie können wie auf diese Weise ausgewählte Eigenschaft verwalten.

if !(profileData.Gender.isEmpty) { 

    if profileData.Gender == "male" 
    { 
     self.selectedButton = self.btn_male 
    } 
    else if profileData.Gender == "female" 
    { 
     self.selectedButton = self.btn_female    
    } 
    self.selectedButton.selected = true 
} 
+0

Es wirft mich Fehler in dieser Zeile 'gender = (sender == btn_male) ?; "1"; : "2" 'Bitten Sie mich, weitere Kommas hinzuzufügen – mack

1

In Ihrem Code Problem ist

case 10: 
     //male select 
     if (sender.selected == true) { 
      sender.selected = false; // btn_male selected "false" 
      btn_male.selected = true; // btn_male selected "true" that's the problem 
      btn_female.selected = false; 
      gender = "1" 
      print("male selected") 

     } 

ich diesen Code hoffen, dass Sie

für ausgewählte Schaltfläche
@IBAction func btn_male_female_click(sender: UIButton) { 
    switch sender.tag { 
    case 10: 
     //male select 
     if (sender.selected == true) { 
      sender.selected = false; 
      btn_female.selected = false; 
      gender = "1" 
      print("male selected") 

     }else{ 
      sender.selected = true; 
      btn_female.selected = true; 
      gender = "2" 
      print("female selected") 
     } 
     break; 
    case 20: 
     //female select 
     if (sender.selected == true) { 
      sender.selected = false; 
      btn_male.selected = false; 
      gender = "2" 
      print("female selected") 
     }else{ 
      sender.selected = true; 
      btn_male.selected = true; 
      gender = "1" 
      print("male selected") 
     } 

     break; 
    default: 
     break; 
    } 
} 
Verwandte Themen