Objective c 将图像发送到另一个视图控制器UIImageView IOS 5.1
在我的uitableview中有一个来自Facebook的姓名列表,当用户选择一行时,用户详细信息应该显示在另一个视图中 在我的朋友里Objective c 将图像发送到另一个视图控制器UIImageView IOS 5.1,objective-c,ios,uitableview,uiimageview,uiimage,Objective C,Ios,Uitableview,Uiimageview,Uiimage,在我的uitableview中有一个来自Facebook的姓名列表,当用户选择一行时,用户详细信息应该显示在另一个视图中 在我的朋友里 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { long long fbid = [[arrayOfIDs objectAtIndex:indexPath.row]longLongValue]; NSStr
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
long long fbid = [[arrayOfIDs objectAtIndex:indexPath.row]longLongValue];
NSString *user=[NSString stringWithFormat:@"%llu/picture",fbid];
[facebook requestWithGraphPath:user andDelegate:self];
FriendDetail *profileDetailPicture = [[FriendDetail alloc] initWithNibName: @"FriendDetail" bundle: nil];
profileDetailPicture.profileImage.image= transferImage.image;
profileDetailPicture.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
[self presentModalViewController:profileDetailPicture animated:YES];
[profileDetailPicture release];
}
-(void)request:(FBRequest *)request didLoad:(id)result{
if ([result isKindOfClass:[NSData class]])
{
transferImage.image = [[UIImage alloc] initWithData: result];
// UIImage * sendPicture=[[UIImage alloc] initWithData: result];
NSLog(@"Profile Picture");
}
}
这很好,因为如果我在表视图下面放一个uiiamgeview来查看它是否工作,似乎我得到了正确的图像。
但是,当我选择行并尝试将图像发送到其他viewcontroller UIImageview时,请按以下几行执行
FriendDetail *profileDetailPicture = [[FriendDetail alloc] initWithNibName: @"FriendDetail" bundle: nil];
profileDetailPicture.profileImage.image= transferImage.image;
profileDetailPicture.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
[self presentModalViewController:profileDetailPicture animated:YES];
它不会将图像发送到应该显示好友图像的详细视图控制器
我尝试了UIImageView和UIImage两种方法,但都做不到
代码有什么问题
---------编辑----------
所以感谢您的回答,我已经更改了代码,下面的代码很好用
-(void)request:(FBRequest *)request didLoad:(id)result{
if ([result isKindOfClass:[NSData class]])
{
transferImage.image = [[UIImage alloc] initWithData: result];
FriendDetail *profileDetailPicture = [[FriendDetail alloc] initWithNibName: @"FriendDetail" bundle: nil];
[profileDetailPicture view];
profileDetailPicture.profileImage.image= transferImage.image;
profileDetailPicture.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
[self presentModalViewController:profileDetailPicture animated:YES];
[profileDetailPicture release];
NSLog(@"Profile Picture");
}
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
long long fbid = [[arrayOfIDs objectAtIndex:indexPath.row]longLongValue];
NSString *user=[NSString stringWithFormat:@"%llu/picture",fbid];
[facebook requestWithGraphPath:user andDelegate:self];
}
这条线就是问题所在:
profileDetailPicture.profileImage.image= transferImage.image
我假设profileImage是一个IBOutlet?问题是,此时该值将为零,因为尚未加载详图视图控制器的视图
解决此问题的通常方法是将图像存储在详图控制器的成员变量中,然后将其填充到viewDidLoad中profileImage的图像成员中,或者在确保已加载详图视图的其他位置。(例如,如果您要调用
[profileDetailPicture view]
来强制在此行之前加载视图,它应该可以工作。)公平地说,首先调用-view有点麻烦。我强烈建议采用另一种方法。(例如,如果以后卸载并重新加载视图,则-view方法将失败。)