我在UITableViewCell中显示多个图像,如缩略图图像。但我正在努力检索所选UITableViewCell的图像。我必须这样做才能在另一个ViewController中显示图像。我真的很难解决这个问题。
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = (UITableViewCell *)[tableView dequeueReusableCellWithIdentifier:@"MyCell"];
if (cell==nil)
{
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"CellIdentifier"];
}
jsonDict = [jsonArr objectAtIndex:indexPath.row];
//NSLog(@"imagess%@",jsonDict);
cell.textLabel.text = [jsonDict objectForKey:@"ImageName"];
stringg=[NSString stringWithFormat:@"%@",cell.textLabel.text];
cell.textLabel.textAlignment=NSTextAlignmentCenter;
NSData *imgData = [NSData dataWithBase64EncodedString:[jsonDict objectForKey:@"ImageData"]];
imageView.image=[UIImage imageWithData:imgData];
}
return cell;
}
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
NSLog(@"%@",cell);
NSString *textname=[NSString stringWithFormat:@"%@",cell.textLabel.text];
NSLog(@"%@",textname);
UIImage *image1 =selectedCell.imageView.image;
age.ageimgae=image1;
}
答案 0 :(得分:1)
您可以使用所选单元格的索引,而不是获取所选单元格的图像,以便在JSonArray
中获取所需的图像(就像您在tableView cellForRowAtIndexPath:
中所做的那样) :
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
jsonDict = [jsonArr objectAtIndex:indexPath.row];
NSData *imgData = [NSData dataWithBase64EncodedString:[jsonDict objectForKey:@"ImageData"]];
UIImage *image1 = [UIImage imageWithData:imgData];
}
答案 1 :(得分:0)
在didSelectRowAtIndexPath
中,您需要识别特定的Indexpath
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
jsonDict = [jsonArr objectAtIndex:indexPath.row];
NSLog(@"the textr Name==%@",[jsonDict objectForKey:@"ImageName"]);
UIImage *image1 = [UIImage imageWithData:[NSData dataWithBase64EncodedString:[jsonDict objectForKey:@"ImageData"]]];
NSData *imageData = UIImagePNGRepresentation(image1);
[[NSUserDefaults standardUserDefaults] setObject:imageData forKey:@"imageDataKey"];
[[NSUserDefaults standardUserDefaults]synchronize];
NSLog (@"Data Saved");
}
在这里您可以选择使用NSUSerdefault
或singleton
或SharedInstance
或其他内容将NSData或您的图片传递给其他视图控制器。
nsdata *imagedata=[[NSUserDefaults standardUserDefaults] objectForKey@"imageDataKey"];
yourimgaename.image = [UIImage imageWithData:[NSData dataWithBase64EncodedString: imagedata]];