0

ユーザーが行を選択すると、ユーザーの詳細が別のビューに表示されます。

私の友達で.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を配置して、それが機能するかどうかを確認すると、機能する正しい画像が得られるように見えるため、これは問題ありません。 ここに画像の説明を入力

しかし、行を選択して画像を他の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];

}
4

1 に答える 1

1

この行が問題です:

profileDetailPicture.profileImage.image= transferImage.image

profileImage は IBOutlet だと思いますか? 問題は、詳細ビュー コントローラーのビューがまだ読み込まれていないため、この時点でこれが nil になることです。

これを解決する通常の方法は、画像を詳細コントローラーのメンバー変数に格納し、それを viewDidLoad の profileImage の画像メンバーに設定するか、詳細ビューが既に読み込まれていることが確実な場所に設定することです。(たとえば、[profileDetailPicture view]この行の前にビューを強制的にロードするために呼び出した場合、それは機能するはずです。)

于 2012-06-25T00:22:52.190 に答える