完成Twitter呼叫后呈现视图控制器

时间:2014-09-02 22:11:55

标签: objective-c ios7 twitter modalviewcontroller slcomposeviewcontroller

我试图在Twitter帖子成功完成后呈现模态视图;但是,我无法呈现我的控制器,因为SLComposeViewController仍在呈现。是否有一些完成方法会在所有内容都被竞争并且视图被解除时调用?

SLComposeViewController* tweetSheet = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeTwitter];
    tweetSheet.completionHandler = ^(SLComposeViewControllerResult result){
        UBSTwitterSuccessViewController* twitterView;
        switch(result){
            case SLComposeViewControllerResultCancelled:
                break;
            case SLComposeViewControllerResultDone:
                twitterView = [[UBSTwitterSuccessViewController alloc]initWithNibName:XIBTWITTERSUCCESS bundle:nil];
                [self presentViewController:twitterView animated:YES completion:nil];
                break;
        }
    };
    [tweetSheet setInitialText:@"Check out this cool thing"];
    [tweetSheet addURL: [NSURL URLWithString:@"http://www.cad-comic.com/"]];

    [self presentViewController:tweetSheet animated:NO completion:nil];

警告没有显示视图:

Warning: Attempt to present <UBSTwitterSuccessViewController: 0x16569b70>  on <UINavigationController: 0x1663bd30> which is already presenting <SLComposeViewController: 0x166b1170>

1 个答案:

答案 0 :(得分:-1)

SLComposeViewControllercompletionHandler,您可以在其中指定在用户完成或取消撰写帖子时要执行的块。

  

completionHandler用户完成编写时调用的处理程序   一个帖子。

     

@property(非原子,复制)SLComposeViewControllerCompletionHandler   completionHandler讨论处理程序有一个参数   表示用户是否完成或取消撰写帖子。   不保证在任何特定线程上调用此块。

     

特殊注意事项在iOS 6及更早版本中,如果设置完成   处理程序然后你的完成处理程序负责解雇   SLComposeViewController使用   dismissViewControllerAnimated:完成:.在iOS 7及更高版本中   使用iOS 7或更高版本的SDK编译时,您不能忽略   完成处理程序中的SLComposeViewController - 系统将执行   所以自动。

Apple Documentation