使用Camera将多个图像添加到UIPageViewController

时间:2015-11-24 07:24:04

标签: swift camera uiimagepickercontroller uipageviewcontroller

应用开发新手。

我想要做的是让用户从相机拍摄2张照片并查看它们。然后将围绕这两张照片进行编码。偏好只是从相机中获取,但也可以来自PhotoLibrary。

我的思考过程是,单击按钮拍摄第一张照片,然后在UIPageViewController中显示该照片,然后通过按下按钮再次调用相机让他们拍摄另一张照片,然后照片就会成为UIImagePickerController的第二部分。因此,用户可以使用底部的2个点进行滑动以进行查看,然后选择确认。

所以我所做的就是关注UIPageViewController,以便允许用户从库或相机中进行选择,并实施viewDidLoad。但是把两者放在一起很麻烦。

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

使用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) } ...我调用了Camera,还调用了pageViewController。我的问题是pageviewcontroller从pageImages []获取数据但是如何使用图像名称字符串填充数组?我在下面正确地做了吗?我想我可能有一个问题,一旦我解除了选择器,pageviewcontroller控制器会自动更新,否则永远不会从相机获取图像。我想我可能需要调用相机然后通过segues将数据传递给视图控制器?

其他想法我有一个视图控制器只显示拍摄的图像,保存它,添加文件到数组,然后当用户拍摄另一张照片时,图像被保存并添加到数组然后通过segue传递给pageviewcontroller,用户可以滚动浏览两者并确认或删除。想法?

SELECT DISTINCT actor_id FROM film_actor WHERE film_id in
(SELECT film_id FROM film_actor WHERE actor_id LIKE '162)

1 个答案:

答案 0 :(得分:0)

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

此外,由于数组是nil,我没有启动pageviewcontroller,直到拍摄或选择第一张图像为止。

关闭以对抗下一组代码,实际上对这两个图像做一些事情。很可能在将来需要一些帮助......不久的将来。感谢。