2014-10-10 4 views
4

Мне нужно получить текст из текстовых полей в моем предупреждении, когда нажата кнопка ввода.Swift UIAlertController Получение текстового поля Текст

func inputMsg() { 

    var points = "" 
    var outOf = "" 

    var alertController = UIAlertController(title: "Input View", message: "Please Input Your Grade", preferredStyle: UIAlertControllerStyle.Alert) 

    let actionCancle = UIAlertAction(title: "Cancle", style: UIAlertActionStyle.Cancel) { ACTION in 

     println("Cacle") 
    } 
    let actionInput = UIAlertAction(title: "Input", style: UIAlertActionStyle.Default) { ACTION in 

     println("Input") 
     println(points) 
     println(outOf) 
    } 

    alertController.addAction(actionCancle) 
    alertController.addAction(actionInput) 
    alertController.addTextFieldWithConfigurationHandler({(txtField: UITextField!) in 
     txtField.placeholder = "I got" 
     txtField.keyboardType = UIKeyboardType.NumberPad 
     points = txtField.text 
     }) 



    alertController.addTextFieldWithConfigurationHandler({(txtField: UITextField!) in 
     txtField.placeholder = "Out Of" 
     txtField.keyboardType = UIKeyboardType.NumberPad 
     outOf = txtField.text 
    }) 
    presentViewController(alertController, animated: true, completion: nil) 
} 

ответ

3

UIAlertController имеет textFields свойство. Это его текстовые поля. Любой из ваших обработчиков может проверить его и, таким образом, получить текст из любого текстового поля.

+0

Как мне это сделать? –

+0

Как бы вы сделали что? Я рассказал вам все, что нужно знать. Контроллер предупреждения - 'alertController'. Его текстовыми полями являются 'textFields'. Их текст - это «текст». Вы создали кнопку ввода, и вы дали ей обработчик действий, который будет запускаться при нажатии кнопки ввода, и вы уже ввели в него сообщения регистрации, чтобы это доказать. Это не получается проще. – matt

+0

@Некоторые не обесценивают мое сообщение с кодом, который я не писал. Я _purposely_ не предоставил код. Если вы хотите добавить свой собственный ответ с кодом, не стесняйтесь! Это совершенно законно и намного лучше, чем переполнение стека, чем попытка скомпрометировать чужой ответ. И у вас есть много преимуществ для вас: ваш ответ может быть повышен; OP может даже снять мой ответ и проверить ваш! – matt

7

Как запрошено вот решение для реализации.

alertController.addAction(UIAlertAction(title: "Submit", style: UIAlertActionStyle.Default,handler: { 
      (alert: UIAlertAction!) in 
      if let textField = alertController.textFields?.first as? UITextField{ 
       println(textField.text) 
      } 
     })) 

Как уже говорилось выше, alertController имеет свойство textFields. Вы можете условно развернуть это свойство, чтобы безопасно получить доступ к текстовому полю, если вы его добавили. В этом случае, поскольку есть только одно текстовое поле, я просто сделал разворот, используя свойство first. Надеюсь, поможет.

Смежные вопросы