在segue之后,无法在下一个ViewController上从UIImagePickerController加载图像

我正试图加载在下一个视图控制器上的UIImagePickerController上select的图片。 我做了一些类似的线程search,发现了一些帮助我设置,但图像并没有真正转移到下一个视图控制器。

这是我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运行到EditViewController ,但EditViewController没有加载图片。 我猜这个任务是错误的,但是我看不出来。

当您尝试将图像设置为EditViewController UIImageView它并不存在,因为EditViewController尚未加载。 而不是设置图像到UIImageView直接在EditViewController中创build一个实例variables,将保存图像。 然后将这个图像分配给viewDidLoad: UIImageView viewDidLoad:

 - (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; ... }