2012-06-24 114 views
0

我有我的uitableview中的Facebook名称列表,当用户选择一行用户的细节应该显示在另一个视图。发送图像到另一个视图控制器UIImageView IOS 5.1

我friends.m

- (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,看看是否可行与否

,似乎我得到它的工作原理正确的图像。 enter image description here

但是当我选择该行,并尝试发送图像到其他视图 - 控制的UIImageView在以下行

FriendDetail *profileDetailPicture = [[FriendDetail alloc] initWithNibName: @"FriendDetail" bundle: nil]; 


     profileDetailPicture.profileImage.image= transferImage.image; 

     profileDetailPicture.modalTransitionStyle = UIModalTransitionStyleCrossDissolve; 

     [self presentModalViewController:profileDetailPicture animated:YES]; 

它不发送图像到详细信息视图控制器,让朋友的形象应该出现enter image description here

我尝试了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]; 

} 

回答

1

这行是问题:

profileDetailPicture.profileImage.image= transferImage.image 

我假设profileImage是一个IBOutlet?现在的问题是,这将是零,因为你的详细视图控制器的视图还没有加载。

解决此问题的常用方法是将图像存储在详细控制器的成员变量中,然后将其填充到viewDidLoad中的profileImage的图像成员或其他地方,您确定该详细信息视图已被加载。 (例如,如果您打电话[profileDetailPicture view]强制视图在该行之前加载,则应该可以正常工作。)

+0

公平地说,我应该提到调用 - 首先查看有点破解。我强烈建议另一种方法。 (例如,如果您的视图被卸载并稍后重新加载,则-view方法将失败。) –

相关问题