Twitter发布iOS6'取消'按钮问题

Nat*_*ary 14 iphone xcode ios ios6 xcode4.5

我正在改变我的iOS6和iPhone使用的应用程序,我似乎无法弄清楚为什么当我使用新的社交框架从Twitter发帖时我必须按两次"取消"关闭,其他任何人都有这个问题还是修复?这是按钮的代码.

- (IBAction)twitterPost:(id)sender
{
if([SLComposeViewController isAvailableForServiceType:SLServiceTypeTwitter])
{
    mySLComposerSheet = [[SLComposeViewController alloc] init];
    mySLComposerSheet = [SLComposeViewController   composeViewControllerForServiceType:SLServiceTypeTwitter];
    [mySLComposerSheet setInitialText:[NSString stringWithFormat:@"This is my tweet, hello!",mySLComposerSheet.serviceType]];
    [self presentViewController:mySLComposerSheet animated:YES completion:nil];
}
[mySLComposerSheet setCompletionHandler:^(SLComposeViewControllerResult result) {
    NSLog(@"dfsdf");
    switch (result) {
        case SLComposeViewControllerResultCancelled:
            break;
        case SLComposeViewControllerResultDone:
            break;
        default:
            break;
    }
}];


}
Run Code Online (Sandbox Code Playgroud)

Nat*_*ary 18

如果你使用mySLComposerSheet这很好用......

[mySLComposerSheet setCompletionHandler:^(SLComposeViewControllerResult result) {
[mySLComposerSheet dismissViewControllerAnimated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)

  • 然后你需要记住不要为Facebook SLComposeViewController做这个,它自动解散自己!rdar:12440972 (6认同)
  • 你不能使用`mySLComposerSheet`,因为这是在块代码中发生的.使用`self`代替`mySLComposerSheet`.顺便说一句,谢谢你的暗示:) (2认同)

Aut*_*Tec 9

我对SLComposeViewController的体验是需要手动关闭twitter和微博控制器,而facebook控制器似乎表现得更好.

如果我不自己解雇ViewControllerAnimated,点击"发送"按钮将发送推文或微博发布,但我将留下看似我看不见的视图.因此,我无法再与我的应用互动.

我不知道为什么我的应用程序这样工作...有趣的是,cancel的completionHandler只被调用一次.第二次点击解除视图控制器.

+ (void) shareText:(NSString*)text image:(UIImage*)image social:(NSString*)service url:(NSString*)url
{
    SLComposeViewController*    controller = [SLComposeViewController composeViewControllerForServiceType:service];

    [controller setInitialText:text];
    [controller addImage:image];
    [controller addURL:[NSURL URLWithString:url]];

    controller.completionHandler = ^(SLComposeViewControllerResult result) {
        if( SLComposeViewControllerResultDone == result )
        {
            NSLog(@"rewards for share: %@!", service );
        }
        if( ![SLServiceTypeFacebook isEqualToString:service] )  // facebook behaves
            [[CBLAppDelegate instance].activeViewController dismissViewControllerAnimated:true completion:nil];
    };
    [[CBLAppDelegate instance].activeViewController presentViewController:controller animated:true completion:nil];
}
Run Code Online (Sandbox Code Playgroud)


小智 7

发现了这个问题.它只在将完成处理程序添加到TWTweetComposeViewController时发生.如果添加,请务必致电:

[self dismissModalViewControllerAnimated:YES];