[英]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.