このページの本文へ

Twitter/Facebookと連携させるiOSアプリ開発 (2/3)

2015年07月17日 11時00分更新

文●森 巧尚

  • この記事をはてなブックマークに追加
本文印刷

2.共有のアクションシートから投稿させる方法

Swiftの共有のアクションシートを表示する命令「UIActivityViewController」を使います。共有アクションシートは、デフォルトではTwitterやFacebook以外のメール送信や画像保存なども選択できますが、TwitterやFacebookにだけシェアできるようにボタンの表示を減らすこともできます。

1)Xcodeのメニューで「File」→「New」→「Project」から、「Single View Application」を選択して、新規プロジェクトを作成しましょう。

2)画面に[Button]を配置して、アプリ画面を作ります。

「Main.storyboard」を選択し、右下のライブラリーからButtonを1つドラッグ&ドロップして図のように配置します。ボタンの文字は「シェアする」に変更します。右下の「|△|」ボタンを押して、「Reset to Suggested Constraints(自動レイアウト設定)」を選択します。

3)ボタンが押されたときに実行される関数を作ります。

「シェアする」ボタンを押したときに実行する関数を作ります。あとでこの関数の中に命令を記述します。

メニュー「View」→「Assitant Editor」→「Show Assistant Editor」を選択して、「アシスタントエディター」を表示します。キーボードのcontrolを押しながらButtonを右画面のViewController.swiftへドラッグし、「Connection」を「Action」に切り換えて、ボタンを押したときに実行する関数を作ります。

名前は、「tapShareBtn」とします。

ViewController.swiftにボタンが押されたときに実行する関数が自動的に作成されます。

4)[ViewController.swift]に、プログラムを記述します。

tapTwBtnに、シェアする文字、URL、画像を用意し、UIActivityViewControllerに渡して共有アクションシートを表示するプログラムを記述します。使わないボタンを指定して非表示にもできます。ここでは、TwitterとFacebookのボタン以外を非表示にしましょう。

記述したプログラムは以下の通りです。


//(中略)
@IBAction func tapShareBtn(sender: AnyObject) {
        // 共有する項目
        let shareText = "testText"
        let shareWebsite = NSURL(string: "https://www.apple.co.jp")!
        let shareImage = UIImage(named: "test.jpg")!
        let shareItems = [shareText, shareWebsite, shareImage]
        
        let avc = UIActivityViewController(activityItems: shareItems, applicationActivities: nil)
        
        // 使用しないアクティビティタイプ
        let excludedActivityTypes = [
            UIActivityTypePostToWeibo,
            UIActivityTypeSaveToCameraRoll,
            UIActivityTypePrint,
            UIActivityTypeCopyToPasteboard,
            UIActivityTypeAirDrop,
            UIActivityTypeAssignToContact,
            UIActivityTypeAddToReadingList,
            UIActivityTypeMail,
            UIActivityTypeMessage
        ]
        avc.excludedActivityTypes = excludedActivityTypes
        
        presentViewController(avc, animated: true, completion: nil)
    }
//(中略)

「シェアする」ボタンを押すと、TwitterとFacebookのボタンがある共有アクションシートが表示され、ボタンを押すと、投稿用のダイアログが表示されます。

この連載の記事

一覧へ

この記事の編集者は以下の記事をオススメしています