Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
19
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

@colorrabbit

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

はじめに

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

iOS Simulatorでアカウント設定

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

Screen Shot 2014-11-14 at 10.06.22.png

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

Screen Shot 2014-11-14 at 10.06.38.png

Screen Shot 2014-11-14 at 10.06.44.png

Screen Shot 2014-11-14 at 10.07.17.png

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

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

Screen Shot 2014-11-14 at 09.48.21.png

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

シェアボタンの設置

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

Screen Shot 2014-11-14 at 09.50.52.png

コードを関連付ける

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

Screen Shot 2014-11-14 at 09.55.37.png

大体のコード

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

確認

Screen Shot 2014-11-14 at 10.54.13.png

できてる!簡単!

Facebookは?

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

詳しくはこのへんを見るといいです。公式はやっぱりわかりやすいです。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
19
Help us understand the problem. What are the problem?