0

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>
4

1 に答える 1

-1

SLComposeViewControllerユーザーがcompletionHandler投稿の作成を終了またはキャンセルしたときに実行されるブロックを割り当てます。

ユーザーが投稿の作成を完了したときに呼び出すハンドラー。

@property (非アトミック、コピー) SLComposeViewControllerCompletionHandler completionHandler 説明 ハンドラーには、ユーザーが投稿の作成を終了したかキャンセルしたかを示す単一のパラメーターがあります。このブロックは、特定のスレッドで呼び出されるとは限りません。

特別な考慮事項 iOS 6 以前では、完了ハンドラーを設定すると、完了ハンドラーは、dismissViewControllerAnimated:completion: を使用して SLComposeViewController を閉じる役割を果たします。iOS 7 以降では、iOS 7 以降の SDK を使用してコンパイルした場合、完了ハンドラーで SLComposeViewController を閉じてはなりません。システムが自動的にこれを行います。

アップルのドキュメント

于 2014-09-03T07:44:19.230 に答える