如何快速从警报框中检索输入?我不明白为什么我的代码无法正常工作。我是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的习惯!

10-06 05:36