將多個圖像添加到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)
}