xcode6+swiftでtwitterアプリ作成


関連資料

作成ソース
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に投稿

xcodeにiosフレームワークを追加する方法はこちら>>

  • 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シミュレータにまだ認証機能が対応していないか不具合かは判断できないが認証が正しく行えません。対応策を知っている方、教えてください!!