0

ユーザーがカメラ ロールからメディアを選択し、iOS 6 ソーシャル フレームワークを使用して Facebook に共有できるようにしようとしていました。

以下は私のdidFinishPickingMediaWithInfoです:

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info 
{
    image1 = [info objectForKey:UIImagePickerControllerOriginalImage]; 
    NSData *chosenImage =UIImageJPEGRepresentation(image1, 1.0);
    imageView.image = [UIImage imageWithData:chosenImage];
    [self dismissViewControllerAnimated:YES completion:nil];
}

これは、ユーザーがボタンをタップしたときに呼び出すものです。

-(IBAction)shareImageToFacebook:(id)sender
{
    //This is to display the UIImagePicker to let the user pick an image
    controller = [[UIImagePickerController alloc]init];
    controller.sourceType=UIImagePickerControllerSourceTypePhotoLibrary;
    controller.allowsEditing=YES;
    [controller setDelegate:self];
    [self presentViewController:controller animated:YES completion:nil];

    //This is to display the SLComposeView to let the user share the photo
    if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook])
    {
        SLComposeViewController *fbSheet = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];
        [fbSheet setInitialText:@"Facebooking from my own app! :)"];

        [fbSheet addImage:imageView.image]; //This is where I try to add my image

        [self presentViewController:fbSheet animated:YES completion:nil];
    }
    else if (![SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook])
    {
        [self dismissViewControllerAnimated:NO completion:nil];
        UIAlertView *alertView = [[UIAlertView alloc]
                                  initWithTitle:@"Sorry"
                                  message:@"You can't post to Facebook right now, make sure your device has an internet connection and you have at least one Facebook account setup"
                                  delegate:self
                                  cancelButtonTitle:@"OK"
                                  otherButtonTitles:nil];
        [alertView show];
    }
}

私が最初にやろうとしていたのは、まずユーザーがカメラ ロールから写真を選択できるようにし、次に Facebook 共有ボタンを表示して、ユーザーがカメラ ロールから選択したばかりの写真を共有できるようにすることです。

現在、私の回避策 (上記のコードにあります) は、ユーザーが選択した画像を非表示の UIImageView に設定し、UIImageView の画像を SLComposeViewController に追加することです。「回避策」は機能せず、それだけでなく、2 つのビュー (UIImagePickerController と SLComposeViewController) を表示しようとしているとコンソールに表示されます。コンソールからの直接の警告メッセージは次のとおりです。

Warning: Attempt to present <SLFacebookComposeViewController: 0x94f2580> on <UINavigationController: 0xa4b5240> while a presentation is in progress!

ユーザーがカメラ ロールで画像を選択し、ソーシャル フレームワークを介して画像を共有できるようにする方法を知りたいです。

4

1 に答える 1