如何拍照或选择图像并传递给VC

时间:2015-11-10 20:49:28

标签: ios swift uiimagepickercontroller

我正在尝试使用UIImageViewController传递给另一个UIImagePickerController。用户拍照并立即将其传递给ViewController或从照片库中选择图像然后传递。

我尝试了以下代码,但没有工作。

@IBAction func okButtonTapped(sender: AnyObject) {

  let imageFromSource = UIImagePickerController()
  imageFromSource.delegate = self
  imageFromSource.allowsEditing = false

  imageFromSource.sourceType = .PhotoLibrary

  presentViewController(imageFromSource, animated: true, completion: nil)

}

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

  let selectedImage = info[UIImagePickerControllerOriginalImage] as? UIImage

  dismissViewControllerAnimated(true, completion: {})

  let storyboard = UIStoryboard(name: "Main", bundle: nil)
  let sp = storyboard.instantiateViewControllerWithIdentifier("photoReady") as! photoReadyScreen

  sp.photoReadyImage.image = selectedImage

  presentViewController(sp, animated: true, completion: nil)

}

1 个答案:

答案 0 :(得分:1)

您的photoReadyImage似乎是UIImageView的出口。如果是这样,您将看不到您的图像,因为当您实例化控制器插座时尚未初始化(= nil)。

要实现您的目标,您需要将变量添加到photoReadyScreen控制器:

class photoReadyScreen {
...
var pickedPhoto: UIImage?
...
override func viewDidLoad() {
  super.viewDidLoad()
  photoReadyImage.image = pickedPhoto
...

sp.photoReadyImage.image = selectedImage行替换为sp.pickedImage = image

还要考虑使用self.storyboard而不是创建新的ToolStrip。如果项目中只有一个故事板,则无需创建新故事板 - 您已经拥有一个故事板。