TwitterKitで自動ツイートについて
現在、XcodeでFabricを使用したswift2プログラミングをやってiphoneアプリ作成をやっています。
iphoneアプリのプログラミングでtwitter機能のアプリ作成でこのFabricというフレームワークというのを利用すると結構簡単なプログラミングで作成することができるということを下のWEBサイトで知りました。
http://qiita.com/mokumoku/items/bf0460f420acac3c04fc
確かに、このサイトの通りで大体twitterのログインやツイートもテンプレ的にでき便利だと思ったのですが、幾つか動作的にわからないことがあります。
例えば、ViewControllerを2つ配置して、画面遷移できるようにしているのですが、
ViewController1------>ViewController2に遷移する時にその時にツイート画面を出すような関数コードを呼び出すように作ってみたのですが、その時はツイートできないという状態になります。
ですが、同じ関数コードをコマンドボタンの押しの時に呼び出すとその時はツイート画面が出ます。
ViewController2のプログラミング内容は次のようになっています。
override func viewDidLoad() {
----(中略)----------
tweet()
}
このtweet()でツイート画面が出るようにしているのですが、画面遷移でこの関数は呼び出されているのですが、デバッグの結果
composer.showFromViewController(self) {}この内部のコードにアクセスできていない状態になっています。
また、
@IBAction func tweetTest(sender: AnyObject) {
tweet()
}
tweetTestボタンでtweet()を呼び出した場合は
composer.showFromViewController(self) {}の内部のコードにアクセスしてツイート画面が出るようにアクセスしていることがわかりました。
なぜこのように違いがあるのかご教示頂きますよう、宜しくお願い致します
また、画面遷移時にツイート画面を出すようなこともできるのかも教えていただけると幸いです。
import Foundation
import UIKit
//import UIKit
import TwitterKit
import Fabric
class ViewController2: UIViewController {
override func viewDidLoad() {
//super.viewDidLoad()
// Swift
/*
let logInButton = TWTRLogInButton(logInCompletion: { session, error in
if (session != nil) {
print("signed in as")
} else {
print("error: ")
}
})
logInButton.center = self.view.center
self.view.addSubview(logInButton)
*/
tweet()
}
/*
@IBAction func tweetTest(sender: AnyObject) {
tweet()
}
*/
@IBAction func tweetTest(sender: AnyObject) {
tweet()
}
func tweet(){
// Swift
let composer = TWTRComposer()
composer.setText("just setting up my Fabric")
composer.setImage(UIImage(named: "fabric"))
// Called from a UIViewController
composer.showFromViewController(self) { result in
if (result == TWTRComposerResult.Cancelled) {
print("Tweet composition cancelled")
}
else {
print("Sending tweet!")
}
}
}
}
お礼
解決いたしました!わかりやすく説明して頂き、どうもありがとうございました。「Twitterで認証」を押さずにただただ右上のIDを入力して満足してました;本当にたすかりましたm(_ _)m