2014-06-24 28 views
0

我嘗試使用segue將圖像從一個視圖控制器傳遞到另一個視圖控制器,但圖像爲空且無法使用。將圖像從一個視圖控制器傳遞到另一個視圖控制器

這裏是mainViewController.swift,所有日誌顯示正確的值。

func imagePickerController(picker:UIImagePickerController!,didFinishPickingMediaWithInfo info: NSDictionary!){ 
    var i:UIImage = info.objectForKey(UIImagePickerControllerOriginalImage) as UIImage 
    NSLog("%f, %f", i.size.width, i.size.height); 

    orignal = i 
    NSLog("iamge %@", orignal) 
    performSegueWithIdentifier("showPhoto", sender: self) 
    dismissModalViewControllerAnimated(false) 
} 

override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) { 
    var imageEditcontroller:ImageEditViewController = segue.destinationViewController as ImageEditViewController 

    imageEditcontroller.editImage = orignal 
    NSLog("iamge %@", imageEditcontroller.editImage) 
} 

這裏是另一個視圖控制器「ImageEditViewController.swift」

import UIKit 

class ImageEditViewController: UIViewController { 

    @IBOutlet var imagEditView : UIImageView 

    var editImage:UIImage=UIImage() 

    @IBAction func doDecorateBtn(sender : AnyObject) { 
     print("here text chage5") 
    } 

    @IBAction func doEmailBtn(sender : AnyObject) { 
     print("here text chage6")   
    } 

    init(coder aDecoder: NSCoder!) { 
     super.init(coder: aDecoder) 
     NSLog("iamge2 %@", editImage)    
    } 

    override func viewWillAppear(animated: Bool) { 
     super.viewWillAppear(animated) 
     NSLog("iamge1 %@", editImage) 
    } 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     // Do any additional setup after loading the vie 
    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 
} 

所以看到在這個視圖控制器日誌中,VAR editImage不被初始化到正確的價值。只是新的IOS和感謝幫助。

回答

0

看我的。 (我用uipickerview和委託方法)

func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [NSObject : AnyObject]) { 

let pickedimage = info[UIImagePickerControllerOriginalImage] as! UIImage 

imageView.image = pickedimage 

      if (imageView.image != nil) 
      { 
       print("image not empty") 
picker .dismissViewControllerAnimated(false, completion: nil) 

self .performSegueWithIdentifier("seguetoscoutuploadpage", sender: self) 
      } 
      else 
      { 
       print("IMAGE VIEW NIL") 
      } 
     } 



    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) { 

     if (segue.identifier == "seguetoscoutuploadpage") { 

let scout = segue.destinationViewController as! ScoutImageUpload 
    scout.newImage = imageView.image! 

     } 
    } 
相關問題