将UIImageView从主视图移动到另一个 [英] moving the UIImageView from the main view to another
问题描述
我的代码可以很好地从画廊中选择图片并在同一视图中显示, 现在卡住的是,单击下一步"按钮时,会将选择的UIImageView转移到下一个活动
my code works fine in choosing the picture from the gallery and display it in the same view, what am stuck into now, is transferring that UIImageView chosen to the next activity when "next" button is clicked
这是打开图库的代码
@IBAction func gallery(sender: AnyObject) {
if UIImagePickerController.availableMediaTypesForSourceType(.PhotoLibrary) != nil {
picker.allowsEditing = false
picker.sourceType = UIImagePickerControllerSourceType.PhotoLibrary
presentViewController(picker, animated: true, completion: nil)
}
}
这是在同一视图中显示图像的代码
this is the code that displays the image in the same view
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [NSObject : AnyObject]) {
var chosenImage = info[UIImagePickerControllerOriginalImage] as! UIImage
imageChosen.contentMode = .ScaleAspectFit
imageChosen.image = chosenImage
dismissViewControllerAnimated(true, completion: nil)
}
现在将UIImageView保存在imageChosen中之后,这是用于将该图像传递到下一个视图的代码
now after the UIImageView saved in the imageChosen, here is the code am using to pass that image to the next view
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
var pass:postView = segue.destinationViewController as! postView
if(segue.identifier == "next"){
pass.imgv.image = imageChosen.image
}
}
这行代码导致程序崩溃
pass.imgv.image = imageChosen.image
第二个视图中的imgv声明如下
the imgv in the second view is declared like this
@IBOutlet weak var imgv: UIImageView!
我在这里做错什么,请指导我
what am i doing wrong here, please direct me
推荐答案
您不能在尚未渲染的视图中设置数据.因此,将图像传递到第二个视图,然后在secondView的viewDidLoad中将该图像设置为ImageView
override func prepareForSegue(segue: (UIStoryboardSegue!), sender: AnyObject!) {
if segue.identifier == "next" {
var pass:second = segue.destinationViewController as! second
pass.currentImage=myImageView.image;
}
}
//第二视图
class second: UIViewController {
@IBOutlet weak var tempImgView: UIImageView!
var currentImage:UIImage!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
if((currentImage) != nil){
tempImgView.image=currentImage;
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
这篇关于将UIImageView从主视图移动到另一个的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!