Swiftで遊ぼう! - 496 - Swiftではじめる教科書:SNSへの投稿 その2
- Swiftで遊ぼう!の前書き-> Life-LOG OtherSide
- Swift2.1 & Xcode7.1対応の日本語版アップルチュートリアル!
前回は、この本で知った「SLComposeViewController」の完成度の高さを知りました。こんな部品が用意されていると開発が楽ですね。できるだけ標準で用意されている道具を使って必要な機能だけを自分で実装することを考える必要があります。
次は「共有アクションシート」の利用です。
前回と同じプロジェクトを使います。もう一つUIButtonを設置します。前回のボタンの上部に設置してコンストレイントも忘れないで決めます。タイトルをダブルクリックして「メッセージを共有」に変更します。
「Ctr + ドラッグ」でViewController.swiftに@IBActionメソッド「shareMessage」を作ります。
投稿ダイアログで必要が無かったのが共有したいアイテムを事前に用意することです。普通こういうアイテムをボタンアクション内に埋め込むことはありません。デモなのでアイテムをメソッド内に用意します。アイテムはArray型で用意するのがルールです。
let shareItems = ["シェアしたいコメント"]
ここでString型の1つのアイテムを用意しました。次に共有アクションシートをインスタンス化させてい来ます。これはUIKitフレームワークに用意されている「UIActivityViewController」で作ります。
let shareActionSheet = UIActivityViewController(activityItems: shareItems, applicationActivities: nil)
そしてViewControllerに切りかえを要求します。
self.presentViewController(shareActionSheet, animated: true, completion: nil)
これをランさせて、「メッセージを共有」ボタンを押すと次のアクションシートが出てきます。
多くの項目が並んでいます。この項目を消すためにアクションシートのプロパティ「excludedActivityTypes」に例外項目のアレー型を指示してやると表示から消えます。
@IBAction func messageShare(sender: AnyObject) { let shareItems = ["シェアしたいコメント"] let nonVisible = [UIActivityTypeAirDrop] let shareActionSheet = UIActivityViewController(activityItems: shareItems, applicationActivities: nil) shareActionSheet.excludedActivityTypes = nonVisible self.presentViewController(shareActionSheet, animated: true, completion: nil) }
これでAirDropの項目が消えます。
今日はここまで。