0

我试图在推特帖子成功完成后呈现模式视图;但是,我无法展示我的控制器,因为 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>
4

1 回答 1

-1

SLComposeViewController您可以completionHandler在其中分配要在用户完成或取消撰写帖子时执行的块。

completionHandler 用户完成撰写帖子时要调用的处理程序。

@property (nonatomic, copy) SLComposeViewControllerCompletionHandler completionHandler Discussion 该处理程序有一个参数,指示用户是完成还是取消了撰写帖子。不保证在任何特定线程上调用此块。

特殊注意事项 在 iOS 6 和更早版本中,如果您设置了完成处理程序,那么您的完成处理程序负责使用 dismissViewControllerAnimated:completion: 解除 SLComposeViewController。在 iOS 7 及更高版本中,当使用 iOS 7 或更高版本的 SDK 编译时,您不得在完成处理程序中关闭 SLComposeViewController - 系统会自动执行此操作。

苹果文档

于 2014-09-03T07:44:19.230 回答