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

相關問題