1

我想加载在下一个视图控制器UIImagePickerController上选择的图片。我在类似的线程上做了一些搜索,发现有一些帮助我设置了它,但图像并没有真正转移到下一个视图控制器。未能加载图像从UIImagePickerController下一个ViewController后segue

这是我的didFinishPickingImage和prepareForSegue代码:

- (void)imagePickerController:(UIImagePickerController *)picker 
           didFinishPickingImage:(UIImage *)image 
           editingInfo:(NSDictionary *)editingInfo 
{ 
    self.imageChosen = image; 
    [picker dismissModalViewControllerAnimated:NO]; 
    [self performSegueWithIdentifier:@"Edit" sender:self]; 
} 

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    if ([segue.identifier isEqualToString:@"Edit"]){ 
    EditViewController *editViewController = 
         (EditViewController *)segue.destinationViewController; 
    editViewController.imageView.image = self.imageChosen; 
} 

我正在运行到EditViewController的SEGUE,但ImageView的有犯规加载图片。不知怎的,我猜这项任务是错误的,但我看不出如何。

回答

1

当您尝试将图像设置为EditViewControllerUIImageView时,它并不存在,因为EditViewController尚未加载。而不是将图像设置为UIImageView,直接在EditViewController中创建一个实例变量来保存图像。而不是分配此图像UIImageViewviewDidLoad:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    if ([segue.identifier isEqualToString:@"Edit"]){ 
    EditViewController *editViewController = 
        (EditViewController *)segue.destinationViewController; 
    editViewController.image = self.imageChosen; 
} 

//EditViewController.h 
... 
@property (nonatomic, strong) UIImage *image; 
... 

//EditViewController.m 
- (void)viewDidLoad { 
    ... 
    self.imageView.image = self.image; 
    ... 
} 
+0

谢谢你,那解决了我的问题 – Zephyer 2013-03-09 13:38:13

相关问题