想要将图像直接从图像选择器传输到具有imageview的另一个视图

问题描述 投票:0回答:2

我有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.
    }
ios swift xcode uiimagepickercontroller
2个回答
1
投票

请参考以下代码:

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
投票
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)
              }

        }
}
© www.soinside.com 2019 - 2024. All rights reserved.