Мне нужно сделать представление, которое работает как страницы , с всплывающим окном, в котором я могу выбрать, выбрать фотографию из своей библиотеки или создать новую.Включить UIImagePickerController в представлении
В настоящее время у меня есть ViewController, представленный как Popover. В ViewController я вставил ContainerView, и я объявил, что его классом является UIImageViewController. Это показывает мне библиотеку фотографий, но я не нашел, как выбрать что-либо в: My ViewController presented as Popover.
Когда я выбираю фотографию, ничего не происходит. Я попытался поместить некоторые функции
(func imagePickerController(picker: UIImagePickerController!, didFinishPickingImage image: UIImage!, editingInfo: NSDictionary!))
в мой ViewController, но он не работает. Я читал, что UIImagePickerController не поддерживает подклассирование, так как страницы делают это?
Вот мой 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)
}
}
пожалуйста поделитесь соответствующим кодом и – Shubhank
Я редактировал. Что-то очень странное, если я не ставил строку «let imagePicker = UIImagePickerController()», сборщик не отображается ... –
_Когда я выбираю фотографию, ничего не происходит. Я попытался поместить некоторые функции. поэтому вы хотите сказать, что UIImagePicker приходит, но вы не можете выбрать любую фотографию из него? – Shubhank