iOS 7 標準の SNS に投稿するダイアログを表示する

次のような SNS へ投稿するダイアログを表示する。

この機能を使うには Social.framework が必要。次の手順でプロジェクトに追加する。

  1. 画面左の Project Navigator からプロジェクトを選択
  2. 画面中央のタブから Build Phases を選択
  3. Link Binary With Libraries を開き、 + ボタンをクリック
  4. フレームワークの一覧が表示されるので Social.framework を選び、 Add を選択(social と入力して絞り込む)

準備が整ったら実際のコードを見てみよう。

まず Social.framework を使うのに必要なヘッダファイルを読み込む。

#import <Social/Social.h>

そしてダイアログを表示したい場所で次のコードを記述する。実に簡単。

- (void) showTweetView
{
	// Twitter への投稿ダイアログを用意する
	// サービスは SLServiceTypeFacebook なども利用可能
	SLComposeViewController *postViewController = [SLComposeViewController composeViewControllerForServiceType: SLServiceTypeTwitter];

	// 投稿時のコールバックを指定する
	[postViewController setCompletionHandler: ^(SLComposeViewControllerResult result) {
		switch (result) {
			case SLComposeViewControllerResultDone:
				NSLog(@"ツイートを送信しました");
				break;
				
			case SLComposeViewControllerResultCancelled:
				NSLog(@"キャンセルされました.");
				break;
		}
	}];

	// はじめに入力されている文字列を指定する
	// このメソッドを呼ばない場合は空となる
	[postViewController setInitialText: @"Hello, chun chun world!"];

	// ダイアログを開く
	[self presentViewController: postViewController  animated: YES  completion: nil];
}