ユーザーがカメラ ロールからメディアを選択し、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!
ユーザーがカメラ ロールで画像を選択し、ソーシャル フレームワークを介して画像を共有できるようにする方法を知りたいです。