如何快速从警报框中检索输入?我不明白为什么我的代码无法正常工作。我是C ++程序员,所以很快就很新。由于某种原因,当我进入打印行时,它只会显示:“添加的新样式是:”,仅此而已。由于某种原因,它不会打印出用户在文本框中键入的内容。这是我的代码
// 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);
}
最佳答案
尝试添加print("New Style Added is: " + tempStyle)
tempStyle = textField.text!
。好像在正确的位置没有调用print命令。 tempStyle唯一知道的是它等于“”,这将说明您得到“添加的新样式为:”。您必须将代码添加到更改了变量的函数中,或者使var tempStyle =“”成为类范围的变量。在这种情况下,您可以将变量添加到任何函数之外。如果要将其设置为类范围的变量,则可以将print("New Style Added is: " + tempStyle)
保留在原位置,但需要将其设置为print("New Style Added is: " + self.tempStyle)
,这是指在该类(即viewController)中创建了tempStyle的外观。另外,您不需要“;”在Swift中,但是我想这是来自Objective C的习惯!