Swift - 存储UIAlterController文本值

时间:2016-03-10 15:42:52

标签: swift uialertcontroller uialertaction

(使用Swift 2和Xcode 7)

我有一个UIAlertController,提示用户输入一个名字。

我很难获得用户输入的价值,所以任何抬头都会很棒。

我有以下代码;

func promptUserToEnterSessionName() -> String{

    let sessionNameController = UIAlertController(title: "Save your yoga session", message: "Please enter session name", preferredStyle: .Alert)

    let cancelAction = (UIAlertAction(title: "Cancel", style: UIAlertActionStyle.Cancel, handler: nil))

    let saveAction = (UIAlertAction(title: "Save", style: UIAlertActionStyle.Default, handler: enteredSessionName))

    sessionNameController.addTextFieldWithConfigurationHandler {
        (textField) -> Void in
        self.sessionName = textField

    }

    sessionNameController.addAction(cancelAction)
    sessionNameController.addAction(saveAction)
    self.presentViewController(sessionNameController, animated: true, completion: nil)


   //savedSessionName = (sessionNameController.textFields![0] as UITextField).text!
    //print(savedSessionName)

    return ""
}

func enteredSessionName(alert: UIAlertAction!){
        print("sessionName" + String(sessionName))
}

1 个答案:

答案 0 :(得分:2)

因此,另一种可能的解决方案是将整个UITextField保存在您的成员变量中。

var textField: UITextField?

sessionNameController.addTextFieldWithConfigurationHandler {
    (textField) -> Void in
    self.textField = textField
}

func enteredSessionName(alert: UIAlertAction!){
    print("sessionName" + String(self.textField.text))
}