2016-04-26 104 views
0

我的ViewController - 我只是选择一个图像,然后更新imageView。尽管如此,无论何时我离开视图,ImageView都会回到“面部未知”状态,因为newImage很糟糕。当视图发生变化时,变匝数为零

为什么变量newImage在视图更改后不记得图像?

var newImage: UIImage! 
@IBOutlet weak var imageView: UIImageView! 
var imagePicker = UIImagePickerController() 


override func viewDidLoad() { 
    super.viewDidLoad() 
    if((newImage == nil)){ 
     imageView.image = UIImage(named:"face-unknown")! 
    }else{ 
     imageView.image = newImage 
    } 

} 

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

    if let possibleImage = info["UIImagePickerControllerEditedImage"] as? UIImage { 
     imageView.image = resizeImage(possibleImage,newWidth: 150) 
     newImage = resizeImage(possibleImage,newWidth: 150) 
    } else if let possibleImage = info["UIImagePickerControllerOriginalImage"] as? UIImage { 
     imageView.image = resizeImage(possibleImage,newWidth: 150) 
     newImage = resizeImage(possibleImage,newWidth: 150) 
    } else { 
     return 
    } 
+0

这取决于你的意思是“离开视图”。如果您在返回时创建新的视图控制器,它不知道存储在属于旧控制器的变量中的内容。 –

回答

0

你的ImageView是回“面子未知”,因为viewDidLoad()方法被调用一次。不是因为你的UIImage是零。相反,尝试更新你的UIImageView在viewWillAppear()方法,它应该工作

+0

是否使用override func viewWillAppear(animated:Bool),但没有奏效。 – tesgoe

+0

如果你的委托方法'func imagePickerController(picker:UIImagePickerController,didFinishPickingMediaWithInfo info:[String:AnyObject])'改变你的'newImage'的名字,你能检查断点吗? – AnthonyR

+0

它改变'newImage'的值。我想答案是在@ phillip-mills的评论中。 – tesgoe

相关问题