2016-05-28 15 views
0

私は2つのViewControllerを持っています。 ViewController#1はUIImagePickerを含み、ViewController#2はKeyを持つUIImage辞書変数を含む。 ViewController#1から渡されたUIImage変数(var newImage = UIImage())で辞書配列を更新したいと思います。配列は文字列を期待しているので、UIImage配列を文字列に変換しようとしました。私はまた、イメージは運がないことを確認しました。スイフト2:UIImagePickerのUIImage()varを使用して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!) 




    } 


} 
+0

あなたが達成したいとは思っていませんが、特定のキーの辞書に既に保存されているイメージを変更したいのですか? –

+0

はい。 ViewController#2で宣言したvar newImage = UIImage()の配列の "Plan_P"と "Plan_M"イメージを置き換えたいと思います。 –

答えて

0

ここでは何をすべきですか。 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 は、単に以下の機能を変更し、セグエ方法の準備からすべてを削除します。

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) 

    } 
関連する問題