如何从Swift中的警报框中检索输入?

时间:2016-04-22 00:20:29

标签: ios swift uialertcontroller

如何从swift中的警报框中检索输入?我不明白为什么我的代码不起作用。我是一名C ++程序员,所以我对swift很新。出于某种原因,当我到达我的打印线时,它只是说:“新增加的风格是:”而这就是全部。由于某种原因,它不会打印出用户在文本框中键入的内容。这是我的代码

 // 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);

    }

1 个答案:

答案 0 :(得分:1)

尝试添加print("New Style Added is: " + tempStyle) tempStyle = textField.text!。看起来没有在正确的位置调用打印命令。所有tempStyle都知道它等于"",这可以解释你得到" New Style Added:"。您必须将代码添加到更改变量的函数中,或者使用var tempStyle =""一个全班的变量。在这种情况下,您可以在任何函数之外添加变量。如果你要使它成为一个类范围的变量,你可以将print("New Style Added is: " + tempStyle)保留在原来的位置,但你需要将它print("New Style Added is: " + self.tempStyle),指的是在该类中创建tempStyle的那个面(viewController) )。此外,你不需要&#34 ;;"在斯威夫特,但我猜测它是Objective C的习惯力量!