【问题标题】:iOS 6 Social framework not going to settings or no alertiOS 6 社交框架不会进入设置或没有警报
【发布时间】:2013-01-03 18:56:07
【问题描述】:

我正在尝试在 iOS6 中实现新的社交框架,并让它工作,除了 2 个奇怪的问题。如果我启用了我感兴趣的服务(比如...FaceBook),那么它就可以正常工作。但是,如果从设置面板中删除帐户(假设是 FaceBook,以保持一致),那么我会在模拟器和设备中出现不同且令人沮丧的行为。

这是我的视图控制器中的相关代码:

//Method for FaceBook

- (IBAction)doFacebook:(id)sender{
//check to see if facebook account exists
if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook]) {

    // Create the view controller defined in the .h file

    fb=[SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];

    // make the default string
    NSString *FBString= [NSString
                         stringWithFormat:@"%@\r via #GibberishGenerator", gibText.text];
    [fb setInitialText:FBString];
    // show the controller
    [self presentViewController:fb animated:YES completion:nil];

    }
}

这是启动上述方法时的奇怪行为:

模拟器(版本 6.0 (358.4))中,我收到一个对话框,通知我没有使用“设置”和“取消”按钮设置任何 Facebook 帐户。只需点击“设置”关闭对话框,但没有将我带到设置面板。

在运行 6.01 的 iPhone 4s 上,点击触发该方法的按钮会导致...什么也没有。换句话说,我没有收到通知我必须设置 Facebook 帐户的对话框。

提前感谢您的帮助。


好的...解决方法如下:

这是我的新实现,基于 user1734802 的有用评论。

//Method for FaceBook

- (IBAction)doFacebook:(id)sender{

    // Create the view controller defined in the .h file

    fb=[SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];

    // make the default string
    NSString *FBString= [NSString
                         stringWithFormat:@"%@\r via #GibberishGenerator", gibText.text];
    [fb setInitialText:FBString];
    // show the controller
    [self presentViewController:fb animated:YES completion:nil];

      }

我希望在某个时候

 [SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook])

真正正常工作(触发自动对话框,并带您进入设置),所以我实际上只是在我的代码中将其注释掉。

【问题讨论】:

  • 对我来说闻起来像个虫子。不适用于任何 SLServiceType 的设备,仅适用于 Twitter 和微博的模拟器。
  • 我开始相信这也是一个错误。我想知道最好的行动方案是什么?弹出我自己的对话框,建议人们设置帐户(因为我显然无法将它们发送到设置)?
  • 这可能是最好的方法,除此之外,如果您最终无法获得此工作文件,请通过 Apple 向bugreporter.apple.com 提交错误报告

标签: facebook ios6 social-framework


【解决方案1】:

我遇到了同样的问题,我通过删除 If 语句来解决它:

if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook])

然后视图将显示,尽管在设置中没有配置 Facebook/Twitter 帐户。 并且“没有 Facebook/Twitter 帐户”的 alertView 显示了!我可以点击警报上的“设置”按钮,它会将我引导至设置(在设置中配置 Facebook/Twitter 帐户)

这是我使用的代码,非常适合我:

- (IBAction)bTwitter:(id)sender {

mySLComposerSheet = [[SLComposeViewController alloc] init];

mySLComposerSheet = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeTwitter];

[mySLComposerSheet setInitialText:@""];

[mySLComposerSheet addImage:[UIImage imageNamed:@""]];

[self presentViewController:mySLComposerSheet animated:YES completion:nil];

}

【讨论】:

  • 这听起来违反直觉,但见鬼,我会试一试,然后在这里报告以确认。感谢您的意见。
  • 是的。它也对我有用。诡异的。我将把它添加到我上面的结论中。
  • 这对你在模拟器和设备上都适用吗,无论是 Twitter 还是 Facebook?在模拟器上,在没有设置帐户的情况下发布到 Facebook 时,设置按钮似乎对我没有任何作用。 Twitter 运行良好,但设置按钮会将用户引导至设置屏幕。
  • 它适用于我,显然也适用于他!所以我看不出你遇到的问题。
  • 因此,当您在没有设置 Facebook 帐户的情况下在模拟器上运行此程序时,会弹出带有设置按钮的警报对话框,您可以单击设置按钮并被定向到 Facebook设置页面?在我的模拟器上它不这样做,只对 Twitter 这样做。您在上面发布的代码是您使用的确切代码吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-09-20
  • 2013-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多