2012-06-24 109 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方法將失敗。) –

相關問題