2015-04-22 115 views
15

在我的一个viewController中,我想让一个alert box出现,提示user键入此信息。然后,我希望用户存储此输入使用NSUserDefaults。我怎样才能做到这一点?Swift:插入带有文本输入的提示框(和存储文本输入)

预先感谢您!

+1

请对你已经尝试了一些细节,和什么专门呃​​你。这不适合开展你的研究。首先尝试[Google](http://www.google.com)。当你做了一些研究并且希望得到某一特定点的帮助时,请到这里。 –

回答

33

检查了这一点:

let alertController = UIAlertController(title: "Email?", message: "Please input your email:", preferredStyle: .Alert) 

let confirmAction = UIAlertAction(title: "Confirm", style: .Default) { (_) in 
    if let field = alertController.textFields![0] as? UITextField { 
     // store your data 
     NSUserDefaults.standardUserDefaults().setObject(field.text, forKey: "userEmail") 
     NSUserDefaults.standardUserDefaults().synchronize() 
    } else { 
     // user did not fill field 
    } 
} 

let cancelAction = UIAlertAction(title: "Cancel", style: .Cancel) { (_) in } 

alertController.addTextFieldWithConfigurationHandler { (textField) in 
    textField.placeholder = "Email" 
} 

alertController.addAction(confirmAction) 
alertController.addAction(cancelAction) 

self.presentViewController(alertController, animated: true, completion: nil) 
19

SWIFT 3

func presentAlert() { 
    let alertController = UIAlertController(title: "Email?", message: "Please input your email:", preferredStyle: .alert) 

    let confirmAction = UIAlertAction(title: "Confirm", style: .default) { (_) in 
     if let field = alertController.textFields?[0] { 
      // store your data 
      UserDefaults.standard.set(field.text, forKey: "userEmail") 
      UserDefaults.standard.synchronize() 
     } else { 
      // user did not fill field 
     } 
    } 

    let cancelAction = UIAlertAction(title: "Cancel", style: .cancel) { (_) in } 

    alertController.addTextField { (textField) in 
     textField.placeholder = "Email" 
    } 

    alertController.addAction(confirmAction) 
    alertController.addAction(cancelAction) 

    self.present(alertController, animated: true, completion: nil) 
} 
2

在SWIFT 3

let alertController = UIAlertController(title: "SecureStyle", message: "SecureStyle AlertView.", preferredStyle: UIAlertControllerStyle.Alert) 
alertController.addTextFieldWithConfigurationHandler { (textField : UITextField) -> Void in 
      textField.secureTextEntry = true 
      textField.placeholder = "Password" 
     } 
let cancelAction = UIAlertAction(title: "Cancel", style: UIAlertActionStyle.Cancel) { (result : UIAlertAction) -> Void in 
      print("Cancel") 
     } 
let okAction = UIAlertAction(title: "OK", style: UIAlertActionStyle.Default) { (result : UIAlertAction) -> Void in 
      print(alertController.textFields?.first?.text) 
     } 
alertController.addAction(cancelAction) 
alertController.addAction(okAction) 
self.presentViewController(alertController, animated: true, completion: nil)