テキストデータはNSUserDefaultに格納できたのですが、画像ができません。
画像をライブラリーから選択して、指定のimageviewに表示させることはできました。
そのあと、表示ができたタイミングでNSUserDefaultに格納したいと思っております。
swift
1@IBAction func ImageBtn(sender: AnyObject) { 2 // フォトライブラリを使用できるか確認 3 if UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.PhotoLibrary){ 4 // フォトライブラリの画像・写真選択画面を表示 5 let imagePickerController = UIImagePickerController() 6 imagePickerController.sourceType = .PhotoLibrary 7 imagePickerController.allowsEditing = true 8 imagePickerController.delegate = self 9 presentViewController(imagePickerController, animated: true, completion: nil) 10 } 11 }
swift
1func imagePickerController(picker: UIImagePickerController, didFinishPickingImage image: UIImage, editingInfo: [String : AnyObject]?) { 2 3 // 選択した画像・写真を取得し、imageViewに表示 4 if let info = editingInfo, let editedImage = info[UIImagePickerControllerEditedImage] as? UIImage{ 5 ProfileImage.image = editedImage 6 }else{ 7 ProfileImage.image = image 8 } 9 10 // フォトライブラリの画像・写真選択画面を閉じる 11 picker.dismissViewControllerAnimated(true, completion: nil) 12 13 }
swift
1// 画面が表示されたときのアクション 2 override func viewWillAppear(animated: Bool) { 3 4 // NSUserDefaultsクラスを呼び出す 5 //standardUserDefaults():ユーザーデフォルトを準備 6 let profile = NSUserDefaults.standardUserDefaults() 7 let profileSex = NSUserDefaults.standardUserDefaults() 8 9 // stringForKey:データを読み込む 10 let myData = profile.stringForKey("myName") 11 let myDataSex = profileSex.stringForKey("mySex") 12 13 //もし、文字が入っていたら表示 14 if let myDisplay = myData { 15 NameTextField.text = myDisplay 16 } 17 //もし、文字が入っていたら表示 18 if let myDisplay = myDataSex { 19 SexTextField.text = myDisplay 20 } 21 22 }
最終的に下記のようになりました。
swift
1func imagePickerController(picker: UIImagePickerController, didFinishPickingImage image: UIImage, editingInfo: [String : AnyObject]?) { 2 3 // 選択した画像・写真を取得し、imageViewに表示 4 if let info = editingInfo, let editedImage = info[UIImagePickerControllerEditedImage] as? UIImage{ 5 ProfileImage.image = editedImage 6 }else{ 7 ProfileImage.image = image 8 } 9 10 // UIImage => NSDataに変換してUserDefaultに保存 11 let imageData = UIImageJPEGRepresentation(ProfileImage.image!, 1); 12 NSUserDefaults.standardUserDefaults().setObject(imageData, forKey: "myImage") 13 NSUserDefaults.standardUserDefaults().synchronize() 14 15 // フォトライブラリの画像・写真選択画面を閉じる 16 picker.dismissViewControllerAnimated(true, completion: nil) 17 18 }
swift
1// 画面が表示されたときのアクション 2 override func viewWillAppear(animated: Bool) { 3 4 // NSUserDefaultsクラスを呼び出す 5 //standardUserDefaults():ユーザーデフォルトを準備 6 let profile = NSUserDefaults.standardUserDefaults() 7 8 // stringForKey:データを読み込む 9 let myData = profile.stringForKey("myName") 10 let myDataSex = profile.stringForKey("mySex") 11 12 if let imageData = profile.objectForKey("myImage") as? NSData, image = UIImage(data: imageData) { 13 // UserDefaultsから画像が取得出来た場合ImageViewのimageに設定 14 ProfileImage.image = image 15 16 }

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/05/08 09:38 編集