繁体   English   中英

Swift 2:使用UIImagePicker中的UIImage()var更新UIImage字典

[英]Swift 2: Update UIImage Dictionary with UIImage() var from UIImagePicker

我有两个ViewController。 ViewController#1包含UIImagePicker,ViewController#2包含带有Key的UIImage字典变量。 我想用从ViewController#1传递的UIImage变量(var newImage = UIImage())更新字典数组。该数组需要一个字符串,所以我尝试将UIImage数组转换为字符串。 我还确认了该图像没有运气。有什么想法吗?

ViewController#1:

  class ViewController: UIViewController,UINavigationControllerDelegate,UIImagePickerControllerDelegate {

    let imagePicker = UIImagePickerController()
    var images = [UIImage]()
    var testimage = UIImage()

    @IBOutlet weak var beaconOne: UITextField!
    @IBOutlet weak var beaconTwo: UITextField!
    @IBOutlet weak var backImage: UIImageView!
    @IBOutlet weak var majorID2: UITextField!

    @IBAction func pickPhoto(sender: UIBarButtonItem) {

        imagePicker.allowsEditing = true
        imagePicker.modalPresentationStyle = .Popover
        imagePicker.sourceType = .PhotoLibrary
        imagePicker.delegate = self

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

    }

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

        testimage = pickedimage
        self.dismissViewControllerAnimated(true, completion: nil)
        print(images)


    }



    override func viewDidLoad() {
        super.viewDidLoad()



        }


    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
        let planVC = segue.destinationViewController as! PlanagramViewController

        planVC.newImage = testimage


    }


}




ViewController#2:

//
//  ViewController.swift
//  BeaconTest
//
//  Created by Apple on 5/6/16.
//  Copyright © 2016 Apple. All rights reserved.
//
// Uses CoreLocation Framework



import UIKit
import CoreLocation


class PlanagramViewController: UIViewController,CLLocationManagerDelegate,UIImagePickerControllerDelegate,UINavigationControllerDelegate {

    @IBOutlet weak var imageView: UIImageView!

    @IBOutlet weak var testImageView: UIImageView!


    var newImage = UIImage()
    var beaconImages = [51098: UIImage(named: "Plan_P"),21714: UIImage(named: "Plan_M")]


    override func viewDidLoad() {
        super.viewDidLoad()

        let newvcMajorID = Int(vcMajorID1)
        beaconImages.updateValue(UIImage(named: "Plan_P"), forKey: newvcMajorID!)

        let newvcMajorID2 = Int(vcMajorID2)
        beaconImages.updateValue(UIImage(named: "Plan_M"), forKey: newvcMajorID2!)




    }


}

这是您应该做的。 从ui故事板上抓取(在代码中)平面图视图控制器,并将图像发送到新图像,然后在视图控制器2中,只需使用该值即可。

查看控制器#2

import UIKit
import CoreLocation


class PlanagramViewController: UIViewController,CLLocationManagerDelegate,UIImagePickerControllerDelegate,UINavigationControllerDelegate {


    @IBOutlet weak var imageview: UIImageView!

    @IBOutlet weak var testimageview: UIImageView!
    var newImage : UIImage?
    var beaconImages = [51098: UIImage(named: "Image"),21714: UIImage(named: "Image")]


    override func viewDidLoad() {
        super.viewDidLoad()

        beaconImages.updateValue(newImage, forKey: 51098)


        beaconImages.updateValue(newImage, forKey: 21714)

        imageview.image = beaconImages[21714]!
        testimageview.image = beaconImages[51098]!




    }


}

视图控制器1只需更改以下功能,并从“准备segue”方法中删除所有内容。

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

        testimage = pickedimage

        self.dismissViewControllerAnimated(true, completion: nil)
        images.append(testimage)
           let        planVC = UIStoryboard.init(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("planagram") as? PlanagramViewController
     planVC?.newImage = testimage
        self.presentViewController((planVC)!
            , animated: true, completion: nil)

    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM