2013-10-18 30 views
1

我正在使用庫GKClass,它基本上是一個自定義imagePickerController類。 我有麻煩傳遞數據 - 圖像到下一個控制視圖,而它正在使用簡單的imagePickerController它現在不工作,ViewController不會獲取數據。不會將圖像傳遞到目標ViewController

-(void)imagePicker:(GKImagePicker *)imagePicker pickedImage:(UIImage *)image 
{ 
    VCImageEditingViewController *ieVC = [[VCImageEditingViewController alloc]init]; 
    ieVC.selectedIMG = image; 
    [self.imagePicker.imagePickerController dismissViewControllerAnimated:NO completion:nil]; 
    [self performSegueWithIdentifier:@"imgrdy" sender:self]; 
} 

和VCImageEditingViewController.m:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    if (self.selectedIMG == nil) { 
     NSLog(@"no img set"); 
    } 
    self.imageDisplayed.image = self.selectedIMG; 
} 

我想它也viewDidAppear,仍然一無所獲,在 「選擇器」 是因爲IV工作的嘗試:

-(void)imagePicker:(GKImagePicker *)imagePicker pickedImage:(UIImage *)image 
{ 
    [self.imagePicker.imagePickerController dismissViewControllerAnimated:NO completion:nil]; 
    self.lastImageView.image = image; 
} 

這表明圖像在當前視圖控制器中。

我的猜測是目標viewController是在圖像被修改之前呈現的。

想在這裏得到一些幫助。謝謝。

回答

2

試試這個

-(void)imagePicker:(GKImagePicker *)imagePicker pickedImage:(UIImage *)image 
{ 

[self.imagePicker.imagePickerController dismissViewControllerAnimated:NO completion:nil]; 

    //pass image with peroformsegue 
    [self performSegueWithIdentifier:@"imgrdy" sender: image]; 
} 

// In prepare segue method assign image to destination view controller 

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
if ([[segue identifier] isEqualToString:@"imgrdy"]) 
{ 
     VCImageEditingViewController *ieVC=segue.destinationViewController; 
     ieVC.selectedIMG =(UIImage *) sender; 
} 
} 
+0

謝謝。作品。 你不介意解釋爲什麼? – Yevgeni

+0

故事板運行庫調用當前視圖控制器的prepareForSegue:sender:方法,以便它可以將所有需要的數據傳遞給即將顯示的視圖控制器。 – Kalpesh

相關問題