我正在从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]];
}
}
答案 0 :(得分:2)
更改您的" @property
"声明 strong 。
即
@property (strong) UIImage *image;
您需要有一个保留的图像才能在新的视图控制器中拾取它。
否则当" prepareForSegue
"时,它将被父视图控制器处理。方法完成。