2

在 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 代替......

4

1 回答 1

1

我希望这很容易!现在,即使没有帐户设置,我也可以调用 composeViewControllerForServiceType: 方法,因此它会显示带有设置按钮的警报,隐藏视图,但我无法隐藏键盘!也许您可以找到一种方法来重置 UITextFieldDelegate 或其他任何东西以不显示键盘......但我不确定!让我知道你是否能弄清楚!

于 2014-01-12T21:16:04.333 回答