私は、写真や言葉 (またはその両方) を facebook と twitter の両方に投稿するプログラムをやっています。しかし、両方を同時に実行したいので、次のようにコードを書きました。
//POST TO FACEBOOK
if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook]) {
slcvc = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];
[slcvc addImage:bim];
[slcvc setInitialText:tf.text];
[self presentViewController:slcvc animated:YES completion:NULL];
}
else {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Facebook - not logged in!" message:@"You need to login (or sign up) to successfully post..." delegate:nil cancelButtonTitle:@"Too bad!" otherButtonTitles:nil];
[alert show];
}
//POST TO TWITTER
if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeTwitter]) {
slcvc = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeTwitter];
[slcvc addImage:bim];
[slcvc setInitialText:tf.text];
[self presentViewController:slcvc animated:YES completion:NULL];
}
else {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Twitter - not logged in!" message:@"You need to login (or sign up) to successfully post..." delegate:nil cancelButtonTitle:@"Too bad!" otherButtonTitles:nil];
[alert show];
}
もちろん、これはすべて、既に「ファイル所有」されている IBAction 関数内にあります (slcvc は SLComposeViewController、bim は UIImage、tf.text は UITextfield tf のテキストです)。そして、私は以前にこのコードを投稿しましたが、それが個別に機能したことだけです。これを使用して Facebook と Twitter に同時に写真を投稿しようとすると、次のエラーが発生します。
Attempt to present <SLTwitterComposeViewController: 0xf6265e0> on <ViewController: 0x9476960> which is waiting for a delayed presention of <SLFacebookComposeViewController: 0x9432d70> to complete
(Facebookへの投稿は引き続き許可されていますが、Twitterへの投稿は許可されていません)
これは、最初の投稿 (この場合は Facebook の投稿) が完了すると、SLComposeViewController が再び自由に操作できるように登録するため、このようなことが起こると確信しています。ユーザーが最初の投稿を (Facebook に) 送信してから、Twitter への投稿を表示するのを何らかの方法で待機するように、2 番目の投稿 (Twitter の投稿) を作成する方法はありますか? 事前に助けや提案をしてくれた人に感謝します!!