2016-08-09 5 views
1

카메라의 카메라를 사용하여 사진을 찍고 싶습니다. 이미지를 다른 viewcontroller로 전달하려면 segue를 사용하십시오. 이미지는 두 번째 viewcontroller에만 표시되어야합니다. 그러나 이미지를 장치의 사진 보관함에 저장해야합니다. 이미지 피커를 사용하여 이미지를 얻을 수있는 방법은 무엇입니까?사진을 찍어 다른 viewcontroller로 전달하는 방법

내가 밖으로 시도했습니다 코드는

func takePhoto(sender : UIButton) 
{ 
    if (UIImagePickerController.isSourceTypeAvailable(.Camera)) 
    { 
     if UIImagePickerController.availableCaptureModesForCameraDevice(.Rear) != nil { 
      imagePicker.allowsEditing = false 
      imagePicker.sourceType = .Camera 
      imagePicker.cameraCaptureMode = .Photo 
      presentViewController(imagePicker, animated: true, completion: {}) 
     } else { 
      print("Rear camera doesn't exist Application cannot access the camera.") 
     } 
    } else { 
     print("Camera inaccessable Application cannot access the camera.") 
    } 

} 

func imagePickerController(picker: UIImagePickerController, didFinishPickingImage image: UIImage, editingInfo: [String : AnyObject]?) 
{ 
    TakenImage = image 
    let selectorToCall = Selector("imageWasSavedSuccessfully:didFinishSavingWithError:context:") 
    UIImageWriteToSavedPhotosAlbum(TakenImage!, self, selectorToCall, nil) 

} 

func imagePickerControllerDidCancel(picker: UIImagePickerController) 
{ 
    print("User canceled image") 
    dismissViewControllerAnimated(true, completion: { 
     // Anything you want to happen when the user selects cancel 
    }) 
} 

TakenImage 아래와 같습니다

다음 이미지는

코드를 사용하는 라이브러리를 저장되지 않습니다 될거야 이미지가 표시되지 않는 viewcontroller.But에 전달됩니다 건네주는 패스는 아래에 표시됩니다.

이 에러를 해결하려면?

+0

이 어떤 부분을 어떤 도움이 필요하세요? 이 질문은 너무 광범위합니다. 무언가를 시도하고 질문을 업데이트하여 도움이 필요한 집중된 단일 문제가되도록하십시오. – rmaddy

+0

int를 전달하는 것과 같은 방법으로 이미지를 전달할 수 있습니까? –

답변

1
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) { 

     let image = info[UIImagePickerControllerOriginalImage] as? UIImage 
     self.imagePickerController.dismissViewControllerAnimated(true, completion: nil) 
} 

이미지 사용 prepareforsegue 통과 :

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
     if segue.identifier == "yoursegueidentifier" { 

      let dvc = segue.destinationViewController as! yourViewController 
      dvc.image = image 
     } 
    } 
0

갤러리에서 이미지를 클릭하거나 선택한 경우 먼저 식별해야합니다. 클릭하면 bool 값을 yes로 변경하고 코드를 사용합니다. 이 갤러리에 이미지를 저장합니다 :

FUNC의 imagePickerController (선택기 : UIImagePickerController를을 didFinishPickingMediaWithInfo 정보를 : [문자열 : AnyObject]) { 선택기 .dismissViewControllerAnimated (사실, 완료 : 무기 호)

imageCLicked = info[UIImagePickerControllerOriginalImage] as? UIImage 

imageData의하자 = UIImageJPEGRepresentation (imageCLicked 0.6) 하게 compressedJPGImage있는 UIImage = (데이터! imageData의) ALAssetsLibrary() writeImageToSavedPhotosAlbum (compressedJPGImage .CGImage, 방향 :.! ALAssetOrientation (rawValue! compressedJPGImage .imageOrientation.rawValue)! {(! 경로 : NSURL! 오류 : NSError) -> 인쇄에 무효가 ("(경로)") // 다음은 경로 얻을 것이다} completionBlock) }

이 당신을 위해 작동 희망을.