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,直到第一個圖像被拍攝或選擇後。

關閉下一組代碼,實際上對這兩個圖像做些什麼。未來很可能需要一些幫助。謝謝。