2013年6月26日水曜日

Social.frameworkの投稿ビューの各ボタンのハンドリングを行う(FacebookまたはTwitterの場合)

Social.frameworkを使用してFacebookまたはTwitter(今回はこの2つでしか試していません)に投稿する際はSocial.frameworkから提供された専用のビューから行います。そのビューに「投稿」または「キャンセル」ボタンがあります。

今回はそのボタンを押した際のハンドリングについて調べたのでメモします。

環境

Xcode : 4.6.2
iOS SDK : 6.1
iPod touch : 第5世代、バージョン6.0

とりあえず投稿ビューを出す

以下のコードはFacebookへ投稿する際のものです。
SLComposeViewController *facebookPostVC = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];
[facebookPostVC setInitialText:@"投稿内容"];
[self presentViewController:facebookPostVC animated:YES completion:nil];
これで投稿ビューが表示されます。

各ボタンをハンドリングする

投稿ビューの各ボタン「投稿」または「キャンセル」のどちらかが押されたかを取得するには以下のコードを使用します。
[facebookPostVC setCompletionHandler:^(SLComposeViewControllerResult result) {
    switch (result) {
        case SLComposeViewControllerResultCancelled:  // キャンセルが押された
            NSLog(@"キャンセル");
                    break;
        case SLComposeViewControllerResultDone:  // 投稿が押された
             NSLog(@"投稿");
                    break;
                default:
                    break;
        }
}];
setCompletionHandler:メソッドを用いてボタンのハンドリングを行っています。

SLComposeViewControllerResultクラスで取得した値をswich文を用いて振り分けています。

参考記事

Twitter Post iOS6 'Cancel' button issue - Stack Overflow

0 件のコメント:

コメントを投稿