在 iOS 6 中,当您创建一个 SLComposeViewController 并使用 presentViewController 显示它并且您没有首先调用 isAvailableForServiceType 时,您将获得“No Facebook Account”警报视图,这使用户有机会在“设置”中设置他们的帐户。
不幸的是,它还在后台显示原生 Facebook 发帖对话框。
我希望获得比同时弹出两个对话框更清晰的体验,那么有没有办法在使用 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.
}
这甚至可能吗,还是我只需要显示一个普通的 UIAlertView 告诉用户转到设置应用程序并设置他们的 Facebook 帐户?
顺便说一句,我还通过调用来保护该块,该调用确定该设备是否甚至支持使用 SLComposeViewController,如果不支持,则使用 Facebook SDK 代替......