用segue传递UIImage

时间:2014-05-10 05:00:59

标签: ios uiimage segue

我正在从JSON对象读取数据并将image属性传递给其他viewcontroller。在我这样做之前,我想用硬编码的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,它显示为nil。

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

1 个答案:

答案 0 :(得分:2)

更改您的" @property"声明 strong

@property (strong) UIImage *image;

您需要有一个保留的图像才能在新的视图控制器中拾取它。

否则当" prepareForSegue"时,它将被父视图控制器处理。方法完成。