2014-05-10 74 views
0

我正在從JSON對象讀取數據並將image屬性傳遞給其他viewcontroller。在我做之前,我想用硬編碼的UiImage測試下面的代碼,它工作得很好。用segue傳遞UIImage

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 

     GrillMenuSingleFoodViewController *gVC = [segue destinationViewController]; 

     if ([segue.identifier isEqualToString:@"isMoreDetail"]) { 

      [gVC setImage:[UIImage imageNamed:@"Ali_nazik.jpg"]]; 

     } 
} 

但是下面的代碼不起作用。即使我得到imagedata,一旦我傳遞給其他viewcontroller它顯示爲零。

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 

     GrillMenuSingleFoodViewController *gVC = [segue destinationViewController]; 

     if ([segue.identifier isEqualToString:@"isMoreDetail"]) { 

      NSString *imageURLString=[menuArray[indexPath.row]valueForKey:@"picture"];; 
      NSURL *url = [NSURL URLWithString:imageURLString]; 
      NSData *data = [[NSData alloc] initWithContentsOfURL:url]; 
      UIImage *tmpImage = [[UIImage alloc] initWithData:data]; 
      [gVC setImage:[UIImage imageWithData:data]]; 
     } 
} 
+0

什麼是您的 「'gVC'」 「'setImage'」 是什麼樣子?它是「@屬性」還是它的某種方法? –

+0

此外,因爲你去創造一個「'tmpImage'」(你不使用)的麻煩,你檢查作出某些「'tmpImage'」是一個有效的對象,而不是空? –

+0

@property(弱,非原子)的UIImage *圖像; foodImageView.image =圖像; – casillas

回答

2

更改 「@property」 聲明

I.E.

@property (strong) UIImage *image; 

您需要有一個保留的圖像才能在新的視圖控制器中拾取。

否則會由父視圖控制器當「prepareForSegue」方法完成設置。

+0

我明白了。非常感謝邁克爾。我會接受你的答案,直到stackoverflow允許我離開8分鐘。 – casillas