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のボタンがある共有アクションシートが表示され、ボタンを押すと、投稿用のダイアログが表示されます。