Twitter发布iOS6“取消”button问题

我正在改变我的iOS6和iPhone使用的应用程序的过程中,我似乎无法弄清楚为什么当我从Twitter发布使用新的社会框架,我不得不按两次“取消”closures,其他人有这个问题还是解决? 这是button的代码。

- (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; } }]; } 

如果你使用mySLComposerSheet这个很好用…

 [mySLComposerSheet setCompletionHandler:^(SLComposeViewControllerResult result) { [mySLComposerSheet dismissViewControllerAnimated:YES completion:nil]; 

我对SLComposeViewController的经验是,twitter和weibo控制器需要手动解散,而facebook控制器似乎更好的performance。

如果我不自己解雇ViewControllerAnimated,点击“发送”button将发送微博或微博的post,但我将留下什么似乎是对我自己的看法一个无形的看法。 因此,我不能再与我的应用程序进行交互。

我不知道为什么我的应用程序是这样工作的…有趣的是,用于取消的completionHandler只被调用一次。 第二个水龙头closures了视图控制器。

 + (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]; } 

发现问题。 只有当完成处理程序被添加到TWTweetComposeViewController时才会发生。 如果添加,请务必打电话给:

[self dismissModalViewControllerAnimated:YES];

试试这个哥们

  [mySLComposerSheet setCompletionHandler:^(SLComposeViewControllerResult result) { switch (result) { case SLComposeViewControllerResultCancelled: [self performSelector:@selector(showalert)]; [mySLComposerSheet dismissViewControllerAnimated:YES completion:nil]; break; case SLComposeViewControllerResultDone: [self performSelector:@selector(showalert1)]; [mySLComposerSheet dismissViewControllerAnimated:YES completion:nil]; break; default: break; } }]; 

发表评论作为答案:

在展示视图控制器之前,您是否尝试过设置completionHandler?