在iOS 8中,使用Facebook分享时SLComposeViewController会自动关闭。

3

我在我的应用中使用SLComposeViewController在Twitter和Facebook上分享。对于Twitter来说,它能够正常工作,但是对于Facebook来说,当选择位置时,SLComposeViewController会自动关闭。这是一个iOS 8的问题,在iOS7上可以正常工作。

 if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook])
{
            self.fbSheet = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];

            SLComposeViewControllerCompletionHandler __block completionHandler=^(SLComposeViewControllerResult result){

                //  [fbSheet dismissViewControllerAnimated:YES completion:nil];

                switch(result){
                    case SLComposeViewControllerResultCancelled:
                    default:
                    {
                        NSLog(@"Cancelled.....");

                    }
                        break;
                    case SLComposeViewControllerResultDone:
                    {
                        NSLog(@"Posted....");
                        if([NetworkManager SharedInstance].isInternetReachable){
                        UIAlertView *alertView = [[UIAlertView alloc]
                                                  initWithTitle:@"Success"
                                                  message:@"Feeds shared successfully."
                                                  delegate:self
                                                  cancelButtonTitle:@"OK"
                                                  otherButtonTitles:nil];
                        [alertView show];
                        }

                    }
                        break;
                }};


            [self.fbSheet setCompletionHandler:completionHandler];
            NSString *fbString= self.titleString;
            [self.fbSheet setInitialText:fbString];
            [self.fbSheet addURL:[NSURL URLWithString:self.urlString]];
            [self presentViewController:self.fbSheet animated:YES completion:nil];


        }

控制流自动进入完成处理程序块,结果为取消。我看过一些帖子,建议是64位架构问题。如果有人遇到同样的问题,请帮助我解决。

1个回答

0
  - (IBAction)facebookPost:(id)sender {

if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook]) {

    self.fbSheet = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];

    [self.fbSheet setInitialText:@"Social Framework test"];

    [self.fbSheet addImage:[UIImage imageNamed:@"imagename.png"]];

    [self.fbSheet addURL:[NSURL URLWithString:@"URL_NAME"]];

    [self.fbSheet setCompletionHandler:^(SLComposeViewControllerResult result) {

         switch (result) {
             case SLComposeViewControllerResultCancelled:
                 NSLog(@"Post Canceled");
                 break;
             case SLComposeViewControllerResultDone:
             {
                 NSLog(@"Post Sucessful");
                NSLog(@"Posted....");
                    if([NetworkManager SharedInstance].isInternetReachable){
                    UIAlertView *alertView = [[UIAlertView alloc]
                                              initWithTitle:@"Success"
                                              message:@"Feeds shared successfully."
                                              delegate:self
                                              cancelButtonTitle:@"OK"
                                              otherButtonTitles:nil];
                    [alertView show];
                    }
                }
                 break;

             default:
                 break;
         }
     }];

    [self presentViewController:self.fbSheet animated:YES completion:nil];
}
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接