★ 画像をダウンロードしてその画像をTwitter投稿画面に添付する
import UIKit
import Social
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func pushTweetButton(sender: UIButton) {
// 画像ダウンロード
let url = NSURL(string: "https://teratail.com/uploads/contributed_images/78379419b2c58363c546e3e6e094a8c9.png")
let config = NSURLSessionConfiguration.defaultSessionConfiguration()
let session = NSURLSession(configuration: config)
let req = NSURLRequest(URL: url!)
let task = session.dataTaskWithRequest(req, completionHandler: { (data, response, error) in
if let imageData = data , image = UIImage(data: imageData) {
// ダウンロード成功時
dispatch_async_main {
// メインスレッドから呼び出し
self.openTweetVC(image)
}
} else {
// エラー処理
print("Error!")
}
})
task.resume()
}
func openTweetVC(image: UIImage) {
let twitterVC = SLComposeViewController(forServiceType: SLServiceTypeTwitter)
twitterVC.addImage(image)
twitterVC.setInitialText("Message")
presentViewController(twitterVC, animated: true, completion: nil)
}
}
func dispatch_async_main(block: () -> ()) {
dispatch_async(dispatch_get_main_queue(), block)
}
★ Simple Twitter, Facebook
import UIKit
class ViewController: UIViewController {
var selectImage: UIImage!
@IBOutlet weak var textField: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func tweetButton(sender: UIButton) {
post(self, text: textField.text!, image: UIImage(named: "swift"))
}
func post(viewController: UIViewController, text: String, image: UIImage? = nil) {
// let composeViewController = SLComposeViewController(forServiceType: SLServiceTypeFacebook)
let composeViewController = SLComposeViewController(forServiceType: SLServiceTypeTwitter)
composeViewController.setInitialText(text)
composeViewController.addImage(image)
viewController.presentViewController(composeViewController, animated: true, completion: nil)
}
}