関連資料
作成ソース
SLComposeViewControllerドキュメント
UI(Main.storyboard)
シンプルにtextviweとbuttonを利用して作成しました。
@IBOutlet var twitter_content: UITextView //入力フォーム
@IBAction func twitter_btn(sender: AnyObject) // ボタン
処理内容(viewController.swift)
- 使用フレームワークをインポートする
import UIKit
import QuartzCore
import Social
UIKit: テキスト入力フォームやボタン実装
QuartzCore: テキストフォームのスタイルを調整
Social: twitterに投稿
- viewDidLoad()にtextviewのスタイル設定
枠線表示と太さ
twitter_content.layer.borderWidth = 0.5
枠線の角を丸く
twitter_content.layer.cornerRadius = 3
枠線の色
twitter_content.layer.borderColor = UIColor.lightGrayColor().CGColor
- twitterボタンがクリックされた場合のアクション(func twitter_btn)
twitter機能が使えるか
if SLComposeViewController.isAvailableForServiceType(SLServiceTypeTwitter) {
twitter用ソーシャル構成ビューコントローラオブジェクトを生成する
var composectl:SLComposeViewController = SLComposeViewController(forServiceType: SLServiceTypeTwitter)
textviewに入力した値をソーシャル構成ビューコントローラオブジェクトに設定
composectl.setInitialText(twitter_content.text)
twitter投稿した時に呼ばれるハンドラ設定
投稿結果(SLComposeViewControllerResult)をパラメータで渡してDoneボタン、Cancelボタンが押された場合にログを出力する。
composectl.completionHandler = {
(result:SLComposeViewControllerResult) -> () in
switch (result) {
case SLComposeViewControllerResult.Done:
println("SLComposeViewControllerResult.Done")
case SLComposeViewControllerResult.Cancelled:
println("SLComposeViewControllerResult.Cancelled")
}
}
twitterモーダルを表示する
self.presentViewController(composectl, animated: true, completion: nil
補足
実行前、シミュレータの設定からtwitter認証を行う必要があります。
しかし、IOS8シミュレータにまだ認証機能が対応していないか不具合かは判断できないが認証が正しく行えません。対応策を知っている方、教えてください!!