func selectAvatar(sender: XLFormRowDescriptor){ let fpController:FPPickerController = FPPickerController() fpController.fpdelegate = self fpController.dataTypes = ["image/*"] fpController.sourceNames = NSArray(objects: FPSourceCamera, FPSourceCameraRoll, FPSourceFacebook, FPSourceInstagram, FPSourceImagesearch) as [AnyObject] fpController.allowsEditing = true fpController.modalPresentationStyle = UIModalPresentationStyle.Popover self.fpSave = FPSaveController() self.fpSave.fpdelegate = self self.fpSave.dataType = "image/*" let presentationController:UIPopoverPresentationController = fpController.popoverPresentationController! presentationController.permittedArrowDirections = UIPopoverArrowDirection.Any self.presentViewController(fpController, animated: true, completion: nil) } func fpPickerController(pickerController: FPPickerController!, didFinishPickingMediaWithInfo info: FPMediaInfo!) { NSLog("File Chosen: %@", info) if info != nil { if info.containsImageAtMediaURL() { let image:UIImage = UIImage(contentsOfFile: info.mediaURL.path!)! let imgData:NSData = UIImagePNGRepresentation(image) self.fpSave.data = imgData self.fpSave.proposedFilename = info.key self.fpSave.saveFileName(info.filename, to: "https://\(S3_BUCKET_NAME).s3.amazonaws.com/uploads/users/2015-09-14/") } self.dismissViewControllerAnimated(true, completion: nil) } else { NSLog("Nothing Picked") } }