2016-08-09 3 views
1

Я хочу сделать снимок с помощью камеры устройства. Мне нужно, чтобы изображение передавалось другому диспетчеру просмотра с помощью segue. Изображение должно отображаться только во втором диспетчере представлений. Но изображение нужно сохранить в библиотеке фотографий устройства. Как я могу добиться этого с помощью imagepicker?Как сделать фотографию и передать ее другому диспетчеру просмотра

кода я уже опробовал показано ниже

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 изображение не появляется there.The изображения не сохраняется библиотеке также

Кода, используемыми для проезда показано ниже

func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) 
{ 
    if (indexPath.row == 0) 
    { 
    let controller = self.storyboard!.instantiateViewControllerWithIdentifier("NoteDetailViewController") as! NoteDetailViewController 
     controller.takinPhoto = true 
     if(noteAlreadyEntered == true) 
     { 
      if (note != "") 
      { 
       controller.content = note 
      } 
      controller.takenImage = TakenImage 
      if (self.tags != "") 
      { 
       controller.tagsTextField.text = self.tags 
      } 
     } 
     else 
     { 
      controller.takenImage = TakenImage 
      if (self.tags != "") 
      { 
       controller.tagsTextField.text = self.tags 
      } 
     } 

    self.navigationController!.pushViewController(controller, animated: true) 
    } 
} 

Как решить эту ошибку?

+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 информация: [String: 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) }

Надеется, что это работает для вас.

Смежные вопросы