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