2016-04-05 13 views
0

Ich habe eine UIPickerView mit einer if-Anweisung in selectedRowInComponent, die den Wert eines textField überprüft. Wenn die eingegebene Nummer des Benutzers im Textfeld größer als 10 ist, wird eine Warnung aufgerufen. Alles funktioniert gut, außer dass ich möchte, dass die Warnung nur einmal ausgelöst wird, nachdem die Zeile ausgewählt und das Feld bearbeitet wurde. So wie es steht, wird die Warnung jedes Mal aufgerufen, wenn das Feld mit einem Wert größer als 10 aktualisiert/bearbeitet wird. Die anfängliche Warnung ist ausreichend. Irgendwelche Tipps, wie ich das erreichen kann? Vielen Dank!Swift UIAlertController Feuer einmal pro Zeile Textfeld bearbeiten

if (inputField.text! as NSString).doubleValue > 10 { 

       SweetAlert().showAlert("Number is greater than 10", subTitle: "Please select number less than 10", style: AlertStyle.CustomImag(imageFile: "alertimage.png")) 
      } 
+0

bro, damit ich antworten weiß aber antworte in objectiv c so warte ich werde in swift finden – iOS

+0

Schätze die hilfe! – Boomspot

+0

Diesen Code in swift konvertieren [[NSNotificationCenter defaultCenter] addObserverForName: UIApplicationWillResignActiveNotification object: Keine Warteschlange: [NSOperationQueue mainQueue] usingBlock:^(NSNotification * notification) { [Nachricht ablehnenWithClickedButtonIndex: 0 animiert: NO]; – iOS

Antwort

1

Quick and Dirty:

eine Bool Variable erstellen in Ihrem Viewcontroller öffentlich zugänglich und es mit falschen initialisieren (nennen wir die Variable 'alertAlreadyShown')

Dann machen Sie einfach eine if-Anweisung über diese Bool in Ihrem picker Methode

 if (inputField.text! as NSString).doubleValue > 10 { 
      if (alertAlreadyShown == false) { 
        SweetAlert().showAlert(...) 
        alertAlreadyShown = true 
      } 
     } 

aber vergessen Sie nicht die Bool zu geeigneten Zeiten zum zurücksetzen des Alarm wieder

0

Es gibt zwei Möglichkeiten, wie Sie das tun könnten. Einer wäre (und meiner Meinung nach der benutzerfreundlichste) nur Werte von weniger als zehn in Ihrer Picker-Ansicht. Die andere Option wäre, bool dafür festzulegen, ob die Warnung angezeigt wurde oder nicht, und dies als Kontrolle für Ihre if-Anweisung hinzuzufügen.

+0

Hallo @ pbush25 die Boolesche Option klingt wie es wäre die bessere der beiden Optionen für meine Situation. Die Auswahlansicht wählt Produkte aus, die in meinem Code als Konstanten dargestellt werden. Das Textfeld ist der Eingabewert für eine Variable, die in meinen Berechnungen verwendet wird. – Boomspot

+0

Wie würde ich meine Warnung in bool umwandeln? – Boomspot

Verwandte Themen