[Swift 1.1] なにはともあれTwitterとFacebookに何かしらシェアする機能を作る

# はじめに

Playgroundではできないようです。

# iOS Simulatorでアカウント設定

ナビゲーションバーとかに、Homeに行くボタンもあります。

![Screen Shot 2014-11-14 at 10.06.22.png](https://qiita-image-store.s3.amazonaws.com/0/18705/4781f137-3fb8-149c-ac62-927b6e374c05.png)

なんだか見たことあるページに遷移します。
ここに設定します。

![Screen Shot 2014-11-14 at 10.06.38.png](https://qiita-image-store.s3.amazonaws.com/0/18705/c8589393-c3e1-355d-78fa-60eea4dcf43b.png)

![Screen Shot 2014-11-14 at 10.06.44.png](https://qiita-image-store.s3.amazonaws.com/0/18705/95386872-94ac-d0c3-2ce7-620f0e78b57f.png)

![Screen Shot 2014-11-14 at 10.07.17.png](https://qiita-image-store.s3.amazonaws.com/0/18705/07b7373e-ae8c-5a75-9410-d780a258f0fa.png)

# フレームワーク・ライブラリの読み込み

Linked Frameworks and Librariesから読み込みます。
Social.frameworkを読み込みます。

![Screen Shot 2014-11-14 at 09.48.21.png](https://qiita-image-store.s3.amazonaws.com/0/18705/448744b5-5004-54a2-b776-abd788cdb485.png)

（iOS8.1で試したところ、これを読み込まなくても投稿できた。。。詳細は不明。）

# シェアボタンの設置

なんだっていいのですが、シェアボタンを設置します。
今回はNavigation BarにUI Bar Button Itemでボタンを置きました。

![Screen Shot 2014-11-14 at 09.50.52.png](https://qiita-image-store.s3.amazonaws.com/0/18705/942489c4-265b-6193-d660-d4550c62a0e7.png)

# コードを関連付ける

AssistantEditorを使い、ボタンをコードの方にCtrl+ドラッグアンドドロップします。
connectionにactionを選択し、action名を設定します。

![Screen Shot 2014-11-14 at 09.55.37.png](https://qiita-image-store.s3.amazonaws.com/0/18705/ac034c98-586a-0d47-d976-7e0d7d3b2e1b.png)

# 大体のコード

```swift
import UIKit
import Social

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


    @IBAction func twitter(sender: AnyObject) {
        // availability check
        if SLComposeViewController.isAvailableForServiceType(SLServiceTypeTwitter) {
            // make controller to share on twitter
            var controller = SLComposeViewController(forServiceType: SLServiceTypeTwitter)
            
            // add link to the controller
            let link: String = "http://www.apple.com"
            let url = NSURL(string: link)
            controller.addURL(url)
            
            // add text to the controller
            let title: String = "ﾟ(ﾟ´ω`ﾟ)ﾟ｡ﾋﾟｰ"
            controller.setInitialText(title)
            
            // show twitter post screen
            presentViewController(controller, animated: true, completion: {})
        }
    }
}
```

![Screen Shot 2014-11-14 at 10.53.39.png](https://qiita-image-store.s3.amazonaws.com/0/18705/1015d271-277d-d581-c21f-06ba82ead2cb.png)

# 確認

![Screen Shot 2014-11-14 at 10.54.13.png](https://qiita-image-store.s3.amazonaws.com/0/18705/5b6ff12c-7bb8-d410-e65a-3db7359abf5a.png)

できてる！簡単！

# Facebookは？

ほぼおんなじフローで、コードとか、twitterのところをfacebookにするといいです。

詳しくは[このへん](https://developer.apple.com/library/ios/documentation/Social/Reference/Social_Framework/index.html#//apple_ref/doc/uid/TP40012233)を見るといいです。[公式](https://developer.apple.com/library/ios/documentation/Social/Reference/Social_Framework/index.html#//apple_ref/doc/uid/TP40012233)はやっぱりわかりやすいです。