J'essaie d'amener un utilisateur à choisir une image de sa galerie ou de son appareil photo, puis à la télécharger dans l'application. Cela fonctionne, mais le seul problème est qu'il ne l'enregistre pas dans l'application. Dès que l'utilisateur ferme l'application, l'image choisie par l'utilisateur disparaît. Je n'ai pas non plus de fonction de sauvegarde, car je ne sais pas comment l'implémenter. J'utilise Xcode 8.3.2 dans Swift 3.0. Voici le code ci-dessous:Swift 3.0: Comment enregistrer l'image d'un utilisateur dans l'application à partir d'un imagePicker
import UIKit
class ViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate {
@IBOutlet weak var imageView: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
@IBAction func chooseImage(_ sender: Any) {
let imagePickerController = UIImagePickerController()
imagePickerController.delegate = self
let actionSheet = UIAlertController(title: "Photo Source", message: "Choose a source", preferredStyle: .actionSheet)
actionSheet.addAction(UIAlertAction(title: "Camera", style: .default, handler: { (action:UIAlertAction) in
if UIImagePickerController.isSourceTypeAvailable(.camera) {
imagePickerController.sourceType = .camera
self.present(imagePickerController, animated: true, completion: nil)
}else{
print("Camera not available")
}
}))
actionSheet.addAction(UIAlertAction(title: "Photo Library", style: .default, handler: { (action:UIAlertAction) in
imagePickerController.sourceType = .photoLibrary
self.present(imagePickerController, animated: true, completion: nil)
}))
actionSheet.addAction(UIAlertAction(title: "Cancel", style: .cancel, handler: nil))
self.present(actionSheet, animated: true, completion: nil)
}
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
let image = info[UIImagePickerControllerOriginalImage] as! UIImage
imageView.image = image
picker.dismiss(animated: true, completion: nil)
}
func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
picker.dismiss(animated: true, completion: nil)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
Si vous n'utilisez aucune base de données, utilisez simplement nsusedefault pour enregistrer l'image ou toutes les données localement sur le périphérique. et récupérer n'importe où dans l'application – cole