LoginSignup
3
4

More than 5 years have passed since last update.

FabricでTwitterのタイムラインを表示する(サンプル版)

Last updated at Posted at 2015-12-31

FabricのサンプルでTwitterのタイムラインを表示する

先の記事でTwitterのタイムラインを表示できるようになりましたが、Fablicにはもっと簡単にタイムラインを表示するためのサンプルがありまして、これを使うことで容易になる・・・はずでした。
ただワークショップムービーの方法ではうまく行かなくて頓挫してたのですが、先の記事での調査の結果、問題になっている箇所が判明し、うまく動作させることができました。

修正コード

下記のようにTWTRAPIClientクラスにUserIDを渡してやることでうまく動作するようになりました。

MainViewController.swift
import UIKit
import TwitterKit

class MainViewController: TWTRTimelineViewController {
  var userId: String?

  override func viewDidLoad() {
    super.viewDidLoad()

    let client = TWTRAPIClient(userID: self.userId)
    self.dataSource = TWTRUserTimelineDataSource(screenName: "fabric", APIClient: client)
  }
}

先の記事同様にLoginAPIをコールしたあとに返ってくるTWTRSessionデータからUserIDを取得して渡してやればOKです。

LoginViewController.swift
import UIKit
import TwitterKit


class LoginViewController: UIViewController {

  override func viewDidLoad() {
    super.viewDidLoad()

    let logInButton = TWTRLogInButton { (session, error) in
      if session != nil {
        self.performSegueWithIdentifier("main", sender: session!.userName)
      } else {
        NSLog("Login error: %@", error!.localizedDescription);
      }
    }

    // TODO: Change where the log in button is positioned in your view
    logInButton.center = self.view.center
    self.view.addSubview(logInButton)
  }

  override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    let session = sender as? TWTRSession
    let dest = segue.destinationViewController as! MainViewController
    dest.title = session!.userName
    dest.userId = session?.userID

  }
}

超簡単ですね。
ムービーにあるようにUIViewControllerのviewをUITableViewに変更するなど、ややトリッキーな操作が必要ですが、それを考えてもこんなに簡単に実装できるのは魅力的です。

最後に

今年最後の記事となりますが、まったりコード書きながら過ごす年越しも悪くないですね。
皆様、良いお年を。

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4