Хотите передать изображение непосредственно из средства выбора изображений в другой вид, имеющий вид uimageview - PullRequest
0 голосов
/ 19 апреля 2019

У меня есть 2 UIViewController, в котором у меня есть одна кнопка на панели навигации первого UIViewController, а в следующем контроллере у меня есть 1 UIImageView 1 UITextField и 1 UITextView. поэтому, когда я нажимаю кнопку на первом контроллере вида, открывается окно выбора изображений, а когда я выбираю любое изображение, оно должно напрямую передаваться следующему контроллеру вида UIImageView. Как я новичок в iOS Swift, не знаю, что делать

мое изображение раскадровки: storyboard image

мой первый контроллер просмотра, т.е. homeviewcontroller.swift код:

import UIKit
import GoogleMaps

class HomeViewController: UIViewController, UINavigationControllerDelegate, UIImagePickerControllerDelegate{

    @IBOutlet weak var mapView: GMSMapView!

    var zoom: Float = 15

    override func viewDidLoad() {
        super.viewDidLoad()

        let camera = GMSCameraPosition.camera(withLatitude: 21.2306, longitude: 72.8671, zoom: 6.0)
        mapView.camera = camera
        mapView.isMyLocationEnabled = true
        mapView.settings.myLocationButton = true
        showMarker(position: camera.target)


    }

    func showMarker(position: CLLocationCoordinate2D) {
        let marker = GMSMarker()
        marker.position = position
        marker.isDraggable = true
        marker.title = "GREWON TECHNOLOGIES PVT. LTD."
        marker.snippet = "SURAT, GUJARAT"
//        marker.appearAnimation = GMSMarkerAnimation.pop
        marker.map = mapView
    }

    @IBAction func imgPickerBtn(_ sender: Any) {
        let picker = UIImagePickerController()
        picker.delegate = self
        picker.allowsEditing = true
        picker.sourceType = .photoLibrary
        self.present(picker, animated: true, completion: nil)

    }

    func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {

        if let pickedImage = info[UIImagePickerControllerOriginalImage] as? UIImage {

        }
    }


    @IBAction func ZoomInBtn(_ sender: Any) {
        zoom = zoom + 1
        self.mapView.animate(toZoom: zoom)
    }

    @IBAction func zoomOutBtn(_ sender: Any) {
        zoom = zoom - 1
        self.mapView.animate(toZoom: zoom)
    }

}

extension HomeViewController:GMSMapViewDelegate {

    func mapView(_ mapView: GMSMapView, didTapAt coordinate: CLLocationCoordinate2D) {
//        self.showMarker(position: coordinate)
    }

}

мой второй просмотр, т.е. detailviewcontroller.swift

import UIKit

class DetailsViewController: UIViewController {

    var transferedImage:UIImage!

    override func viewDidLoad() {
        super.viewDidLoad()

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

Ответы [ 2 ]

1 голос
/ 19 апреля 2019

Пожалуйста, обратитесь ниже код:

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
    if let pickedImage = info[UIImagePickerControllerOriginalImage] as? UIImage {
        let objDetailsViewController = UIStoryboard(name: "storyboardName", bundle: nil).instantiateViewController(withIdentifier: "DetailsViewController_StoryboardID") as! DetailsViewController
        objDetailsViewController.transferedImage = pickedImage
        self.navigationController?.pushViewController(objDetailsViewController, animated: true)
    }
}

class DetailsViewController: UIViewController {
    var transferedImage:UIImage!
    @IBOutlet weak var imageView:UIImageView!

    override func viewDidLoad() {
        super.viewDidLoad()
        //Set your selected image
        imageView.image = transferedImage
}

Пожалуйста, отметьте как принятый, если вы работали на вас.

0 голосов
/ 19 апреля 2019
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) 
{

        if let pickedImage = info[UIImagePickerControllerOriginalImage] as? UIImage 
        {
              if let secondVC = self.storyboard?.instantiateViewController(withIdentifier: "DetailViewController") as? DetailViewController {
                secondVC.transferedImage = pickedImage
                self.navigationController?.pushViewController(secondVC, animated: true)
              }

        }
}
...