Ho bisogno di creare una vista che funzioni come le pagine , con un popup in cui posso scegliere di scegliere una foto dalla mia biblioteca o crearne una nuova.Includi UIImagePickerController in una vista
Attualmente, ho un ViewController, presente come Popover. Nel ViewController, ho inserito un ContainerView e ho dichiarato che la sua classe è UIImageViewController. Questo mi sta mostrando la libreria di foto, ma non trovo il modo di scegliere qualcosa in: My ViewController presented as Popover.
Quando scelgo una foto, non succede nulla. Ho provato a mettere alcune funzioni
(func imagePickerController(picker: UIImagePickerController!, didFinishPickingImage image: UIImage!, editingInfo: NSDictionary!))
nel mio ViewController ma non funziona. Ho letto che UIImagePickerController non supporta la sottoclasse, quindi come le pagine fanno questa roba?
Ecco il mio codice ViewController:
import UIKit
class MenuAddResources: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate {
var newMedia: Bool?
let imagePicker = UIImagePickerController()
@IBAction func takePhoto(sender: AnyObject) {
if(UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.Camera)){
//load the camera interface
let picker : UIImagePickerController = UIImagePickerController()
picker.sourceType = UIImagePickerControllerSourceType.Camera
picker.delegate = self
picker.allowsEditing = false
self.presentViewController(picker, animated: true, completion: nil)
self.newMedia = true
}
else{
//no camera available
let alert = UIAlertController(title: NSLocalizedString("ERROR", comment: ""), message: NSLocalizedString("NO_CAMERA", comment: ""), preferredStyle: .Alert)
alert.addAction(UIAlertAction(title: NSLocalizedString("OK", comment: ""), style: .Default, handler: {(alertAction)in
alert.dismissViewControllerAnimated(true, completion: nil)
}))
self.presentViewController(alert, animated: true, completion: nil)
}
}
override func viewDidLoad() {
super.viewDidLoad()
}
func image(image: UIImage, didFinishSavingWithError error: NSErrorPointer, contextInfo:UnsafePointer<Void>) {
if error != nil {
let alert = UIAlertController(title: NSLocalizedString("ERROR", comment: ""), message: NSLocalizedString("IMAGE_SAVE_FAILED", comment: ""), preferredStyle: UIAlertControllerStyle.Alert)
let cancelAction = UIAlertAction(title: NSLocalizedString("OK", comment: ""), style: .Cancel, handler: nil)
alert.addAction(cancelAction)
self.presentViewController(alert, animated: true, completion: nil)
}
}
func imagePickerController(picker: UIImagePickerController!, didFinishPickingImage image: UIImage!, editingInfo: NSDictionary!){
self.dismissViewControllerAnimated(true, completion: {() -> Void in
})
// Let's store the image
let now:Int = Int(NSDate().timeIntervalSince1970)
let imageData = UIImageJPEGRepresentation(image, 85)
//imageData?.writeToFile(documentsDirectory + "/\(now).jpg", atomically: true)
print(imageData)
/* will do stuff with the image */
}
func imagePickerControllerDidCancel(picker: UIImagePickerController) {
self.dismissViewControllerAnimated(true, completion: nil)
}
}
si prega di condividere codice rilevante anche – Shubhank
Ho modificato. Qualcosa di molto strano è che se non metto la riga "let imagePicker = UIImagePickerController()", il selettore non viene mostrato ... –
_Quando scelgo una foto, non succede nulla. Ho provato a mettere alcune funzioni_. quindi intendi dire che arriva UIImagePicker ma non puoi scegliere alcuna foto da esso? – Shubhank