iOS 6 では、SLComposeViewController を作成し、それを presentViewController で表示し、最初に isAvailableForServiceType を呼び出さなかった場合、「Facebook アカウントがありません」というアラート ビューが表示され、ユーザーは [設定] でアカウントをセットアップする機会が与えられます。
残念ながら、バックグラウンドでネイティブの Facebook 投稿ダイアログも表示されます。
2 つのダイアログを同時にポップアップするよりもクリーンなエクスペリエンスを提供したいので、isAvailableForServiceType で可用性を確認した後、「Facebook アカウントがありません」ダイアログのみを単独で表示する方法はありますか?
基本的に私がやりたいことは次のとおりです。
// Check to see if the user has a Facebook account set up...
if([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook]) {
SLComposeViewController *vc = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];
SLComposeViewControllerCompletionHandler completionBlock = ^(SLComposeViewControllerResult result){
// do something when complete...
};
[vc setCompletionHandler:completionBlock];
[vc setInitialText:@"Intital text..."];
[self presentViewController:vc animated:YES completion:nil];
} else {
// No Facebook account configured yet,
// so show "No Facebook Account" alert view here.
}
これは可能ですか、それともユーザーに設定アプリに移動して Facebook アカウントをセットアップするように指示するバニラの UIAlertView を表示するだけでよいのでしょうか?
ところで、私はまた、このデバイスが SLComposeViewController の使用をサポートしているかどうかを判断する呼び出しでそのブロックを保護しています。そうでない場合は、代わりに Facebook SDK を使用します...