2016-04-22 12 views
0

Wie kann ich die Eingabe aus einer Alarmbox in swift abrufen? Ich verstehe nicht, warum mein Code nicht funktioniert. Ich bin ein C++ Programmierer, also bin ich sehr schnell. Aus irgendeinem Grund, wenn ich zu meiner Druckzeile komme, heißt es nur: "New Style Added is:" und das ist alles, was es gibt. Es wird nicht gedruckt, was der Benutzer in das Textfeld aus irgendeinem Grund getippt hat .. Hier ist mein CodeWie kann ich Eingaben aus einer Warnmeldung in Swift abrufen?

// Generate a text field for user input 
    func generateTextField() 
    { 

     //1. Create the alert controller. 
     var tempStyle = ""; 
     var alert = UIAlertController(title: "Add a New Style", message: "Enter the name of the new hairstyle below", preferredStyle: .Alert); 


     //2. Add the text field. You can configure it however you need. 
     alert.addTextFieldWithConfigurationHandler({ (textField) -> Void in 
      textField.placeholder = "Your New Hairstyle Goes Here.."; 
     }) 

     //3. Grab the value from the text field, and print it when the user clicks OK. 
     alert.addAction(UIAlertAction(title: "OK", style: .Default, handler: { (action) -> Void in 
      let textField = alert.textFields![0] as UITextField 
      tempStyle = textField.text!; 

     })) 


     // 4. Present the alert. 
     self.presentViewController(alert, animated: true, completion: nil) 


     print("New Style Added is: " + tempStyle); 

    } 

Antwort

1

Versuchen Hinzufügen print("New Style Added is: " + tempStyle)tempStyle = textField.text!. Es sieht so aus, als ob der Druckbefehl nicht an der richtigen Stelle aufgerufen wird. Alle TempStyle wissen, dass es gleich "" ist, was erklären würde, dass man "New Style Added is:" bekommt. Sie müssen den Code der Funktion hinzufügen, in der die Variable geändert wird, oder make var tempStyle = "" eine klassenweite Variable. In diesem Fall würden Sie die Variable außerhalb jeder Funktion hinzufügen. Wenn Sie dies zu einer klassenweiten Variablen machen würden, könnten Sie print("New Style Added is: " + tempStyle) dort lassen, wo es ist, aber Sie müssten es print("New Style Added is: " + self.tempStyle) machen, indem Sie auf das Gesicht verweisen, dass tempStyle in dieser Klasse erstellt wird (das ist viewController). Außerdem brauchen Sie nicht ";" in Swift, aber ich vermute, es ist eine Macht der Gewohnheit von Objective C!

Verwandte Themen