2015-11-24 112 views
0

将多个图像添加到UIPageViewController应用程序开发新手。使用相机

我想要做的是允许用户从相机拍摄2张照片并查看它们。然后将编码这两张照片。首选只是从相机拍摄,但也可能来自PhotoLibrary。

我的思考过程是,点击一个按钮拍摄第一张照片,然后在UIPageViewController中显示该照片,然后通过按一个按钮再次调用相机拍摄另一张照片,然后该照片将成为第二张照片作为UIPageViewController的一部分。因此,用户可以用底部的2个点轻扫进行查看,然后选择确认。

所以我所做的是按照UIImagePickerController能够让用户从库或照相机中选择,并且还实现了UIPageViewController。但无法将两者结合在一起。

当我从相机获取图像时,我想我需要保存它。 pageviewcontroller从NSMutableArray获取文件名。

viewDidLoad ...我打电话给相机,也调用pageViewController。我的问题是pageviewcontroller从pageImages []获取数据,但我如何使用图像名称字符串填充数组?我在下面做了正确的吗?我认为我可能有一个问题,那就是一旦我关闭了选取器,pageviewcontroller控制器会自动更新,否则将永远不会从相机获取图像。我想我可能不得不调用相机,然后通过segues将数据传递给视图控制器?

其他的想法是有一个视图控制器,只显示拍摄的图像,保存它,向数组添加文件名,然后当用户拍摄另一张照片时,图像被保存并添加到数组,然后通过segue到pageviewcontroller用户能够滚动浏览并确认或删除。思考?

override func viewDidLoad() { 
    super.viewDidLoad() 

    createPhoto() 

    self.pageViewController = self.storyboard?.instantiateViewControllerWithIdentifier("PhotoPageViewControllerStoryBoard") as! UIPageViewController 
    self.pageViewController.dataSource = self 

    var startVc = self.pageViewControllerAtIndex(0) as PhotoContentPageViewController 
    var viewControllers = NSArray(object: startVc) 

    self.pageViewController.setViewControllers(viewControllers as? [UIViewController], direction: .Forward, animated: true, completion: nil) 

    self.pageViewController.view.frame = CGRectMake(0, -10, self.view.frame.size.width, self.view.frame.size.height-30) 
    self.addChildViewController(self.pageViewController) 
    self.view.addSubview(self.pageViewController.view) 
    self.pageViewController.didMoveToParentViewController(self) 

} 



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

    var newImage: UIImage 

    if let possibleImage = info["UIImagePickerControllerEditedImage"] as? UIImage { 
      newImage = possibleImage 
    } else if let possibleImage = info["UIImagePickerControllerOriginalImage"] as? UIImage { 
      newImage = possibleImage 
    } else { 
     return 
    } 

    if (picker.sourceType == UIImagePickerControllerSourceType.Camera) { 
     let imageName = NSUUID().UUIDString 
     let imagePath = getDocumentsDirectory().stringByAppendingPathComponent(imageName) 

     if let jpegData = UIImageJPEGRepresentation(newImage, 80) { 
      jpegData.writeToFile(imagePath, atomically: true) 
     } 

     pageImages!.addObject(imageName) 
    } 


    dismissViewControllerAnimated(true, completion: nil) 
} 

回答

0

好吧,我想我知道了,我改变了数组传递给pageviewcontroller从contentviewcontroller UIImages而不是文件名字符串。

此外,由于阵列是零,我没有启动pageviewcontroller,直到第一个图像被拍摄或选择后。

关闭下一组代码,实际上对这两个图像做些什么。未来很可能需要一些帮助。谢谢。