Как импортировать изображение в новый ВК из UIImagePickerController? Быстрый

Я добавил камеру и библиотеку фотографий в свое приложение, но я пытаюсь сделать это, когда кто-то выбирает камеру, делает фотографию и выбирает ее, я хочу, чтобы она направляла пользователя к новому контроллеру просмотра и отображала там изображение а не на текущем виде где кнопка?

До сих пор я не искал в Google, мне удалось загрузить новый вид при закрытии камеры или библиотеки, но теперь я не могу понять, как импортировать фотографию и новый вид?!

Если кто-то может помочь, было бы здорово.

Вот мой текущий код ниже:

    override func viewDidLoad() {
        super.viewDidLoad()



        // Do any additional setup after loading the view.
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }









    @IBAction func Camera(sender: AnyObject) {

        if UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.Camera) {
        let imagePicker = UIImagePickerController()
        imagePicker.delegate = self
        imagePicker.sourceType = UIImagePickerControllerSourceType.Camera;
        imagePicker.allowsEditing = false
        self.presentViewController(imagePicker, animated: true, completion: nil)
        }



    }



    @IBAction func Images(sender: AnyObject) {

        let image = UIImagePickerController()
        image.delegate = self
        image.sourceType = UIImagePickerControllerSourceType.PhotoLibrary
        image.allowsEditing = false


        self.presentViewController(image, animated: true, completion: nil)



    }



    func imagePickerController(picker: UIImagePickerController, didFinishPickingImage image:UIImage, editingInfo: [String : AnyObject]?) {

        self.dismissViewControllerAnimated(true, completion: nil)
        let svc = self.storyboard!.instantiateViewControllerWithIdentifier("imageViewer") as! ImageViewController
        self.presentViewController(svc, animated: true, completion: nil)


    }



















}

person Community    schedule 08.12.2015    source источник


Ответы (4)


Основываясь на приведенном выше ответе, вы пытаетесь установить изображение для представления изображения, когда вы должны пытаться установить изображение для изображения представления изображения, Итак, это должно быть:

func viewDidLoad () { super.viewDidLoad ()

// Because the self.image is an optional var, you need to unwrap it
if let image = self.image {
    self.imageView.image = self.image
} 

}

person Community    schedule 03.02.2016

Добавьте необязательное свойство в ваш контроллер представления

class ImageViewController: UIViewController {

    var image : UIImage? = nil 

}


func imagePickerController(picker: UIImagePickerController, didFinishPickingImage image:UIImage, editingInfo: [String : AnyObject]?) {

        self.dismissViewControllerAnimated(true, completion: nil)
        let svc = self.storyboard!.instantiateViewControllerWithIdentifier("imageViewer") as! ImageViewController
        svc.image = image // here
        self.presentViewController(svc, animated: true, completion: nil)

    }
person B.S.    schedule 08.12.2015
comment
Привет, спасибо за ваш ответ. Этот класс MyViewController... соответствует ли он моему ImageViewController? - person ; 08.12.2015
comment
И я помещаю этот бит класса в тот же файл, что и мой код, который я показал вам выше, или во второй? - person ; 08.12.2015
comment
Перейдите в ImageViewController.swift и добавьте туда свойство изображения. - person B.S.; 08.12.2015
comment
Я сделал это, но когда я запускаю его, похоже, ничего не происходит. где вы напечатали здесь есть какой-нибудь совет туда пойти? - person ; 08.12.2015

В вашем ImageViewController или другом принимающем ViewController добавьте:

var selectedImage: UIImage? = nil

В didFinishPickingImage замените свой код следующим:

func imagePickerController(picker: UIImagePickerController, didFinishPickingImage image:UIImage, editingInfo: [String : AnyObject]?) {
    self.dismissViewControllerAnimated(true, completion: nil)
    let svc = self.storyboard!.instantiateViewControllerWithIdentifier("imageViewer") as! ImageViewController
    svc.selectedImage = image
    self.presentViewController(svc, animated: true, completion: nil)
}

В принимающем ViewController, на который ссылается svc, добавьте метод для отображения изображения:

class ImageViewController: UIViewController {

    var selectedImage: UIImage? = nil

    var yourImageView = UIImageView()

    override func viewDidLoad() {
        super.viewDidLoad()
        ...
        yourImageView.frame = view.frame
        yourImageView.image = selectedImage
    }
    ...
}
person xoudini    schedule 04.02.2016

Хочу предложить небольшую модификацию.

Пожалуйста, взгляните на этот ответ: Представление контроллера модального представления сразу после закрытия другого

func presentImageViewerWithImage(image: UIImage) {

    let svc = self.storyboard!.instantiateViewControllerWithIdentifier("imageViewer") as! ImageViewController
    svc.image = image  //Need to make an UIImage instance variable in new viewController
    self.presentViewController(svc, animated: true, completion: nil)
}

func imagePickerController(picker: UIImagePickerController, didFinishPickingImage image:UIImage, editingInfo: [String : AnyObject]?) {

    self.dismissViewControllerAnimated(false, completion: {
        self.presentImageViewerWithImage(image)
    })
}

Затем в контроллере New View сделайте UIImageView IBOutlet и покажите выбранное средство выбора формы изображения этому «ImageView».

@IBOutlet weak var aImageView: UIImageView!

var image : UIImage?

override func viewDidLoad() {
    super.viewDidLoad()

    if let image = image {
        self.aImageView.image = image
    }
}
person Warif Akhand Rishi    schedule 04.02.2016