2016-04-22 110 views
0

我有覆蓋整個視圖的UIImage以及從其照片庫設置圖像的選項。如何讓iOS應用程序記住用戶從UIImagePickerController中選擇的圖像

我的問題是每當我完全關閉應用程序,UIImage恢復到默認圖像。

這裏是我的代碼,如果你需要看它:

@IBAction func wallpaperMenuPressed(sender: AnyObject) { 

    if UIDevice.currentDevice().userInterfaceIdiom == .Pad { 
     self.imagePicker.delegate = self 
     self.imagePicker.sourceType = .PhotoLibrary; 
     self.imagePicker.allowsEditing = false 

     // The app is running on an iPad, so you have to wrap it in a UIPopOverController 
     self.imagePicker.modalPresentationStyle = .Popover 
     presentViewController(self.imagePicker, animated: true, completion: nil)//4 
     imagePicker.popoverPresentationController?.sourceView = wallpaperMenu 
     imagePicker.popoverPresentationController?.sourceRect = (sender as! UIButton).bounds 

    } else { 
     self.imagePicker.delegate = self 
     self.imagePicker.sourceType = .PhotoLibrary; 
     self.imagePicker.allowsEditing = false 


     presentViewController(imagePicker, animated: true, completion: nil) 
    } 
} 

回答

1

ViewController必須符合UIImagePickerControllerDelegateUINavigationControllerDelegate

您需要聲明您的ViewController頂這個變量:

let userDefault = NSUserDefaults.standardUserDefaults() 

然後你就可以從PhotoLibrary獲取圖像:

func imagePickerController(picker: UIImagePickerController, didFinishPickingImage image: UIImage, editingInfo: [String : AnyObject]?) { 
    imageView.image = image 
    let imageData = UIImagePNGRepresentation(image) 
    userDefault.setObject(imageData, forKey: "khuong") 
} 

並在您的viewDidLoad()

override func viewDidLoad() { 
    super.viewDidLoad() 

    let imageData = userDefault.objectForKey("khuong") as? NSData 
    if let imageData = imageData { 
     let image = UIImage(data: imageData) 
     imageView.image = image 
    } 
} 
+0

我已經得到了那些已經在那裏,我可以得到圖像,但不記得它下一次 – Khoury

+0

太感謝你了,它完美 – Khoury

1

這就是你可能設計的方式。當你創建UIImageView時,你會在故事板或xib或代碼中設置默認圖像。

當您啓動應用程序時,此屏幕從在xib/storyboard/code中創建的UI開始,以及在ViewDidLoad或ViewWillAppear中設置的任何默認圖像。

無論圖像您已經選擇並保存,一旦你關閉該應用程序就會丟失,除非你改變默認的圖像是從哪個NSUserDefaults的應用將堅持之間拍攝所選one.Make確保您的默認圖像啓動

1

使用NSUserDefaults存儲您所選擇的圖像

func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) 
    { 
    let myImage = info[UIImagePickerControllerOriginalImage] as! UIImage 

    NSUserDefaults.standardUserDefaults().setObject(myImage, forKey: "myPhoto") 
    self.dismissViewControllerAnimated(false, completion: nil) 
    } 
相關問題