みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

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!")
}
}
}




}

投稿日時 - 2016-03-06 13:17:44

QNo.9138751

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

> なぜこのように違いがあるのかご教示頂きますよう、宜しくお願い致します
> また、画面遷移時にツイート画面を出すようなこともできるのかも教えていただけると幸いです。

Fabricは使ったことないですが、
viewDidLoadのタイミングは遷移先画面生成中でまだ確定できてない状態なので、
そこでshowFromViewControllerを実行するのは早すぎるのだと思います。
viewDidAppearのタイミングで実行すればおそらくうまく表示できると思います。

投稿日時 - 2016-03-08 10:18:20

あなたにオススメの質問