Wenn der Benutzer in meiner App auf shareToFacebook klicktIch brauche meine App, um einen Screenshot von einem anderen ViewController, der gerade die Punktzahl hat, aufzunehmen und auf Facebook zu teilen. Also habe ich den Code so geschrieben: (Es funktioniert ziemlich gut):
Mein Zweifel ist nun: Um diesen Screenshot von einem anderen ViewController zu machen, der die Punktzahl hat, welchen Code soll ich hier einfügen:
@IBAction func sharetoFacebook() {
var sharetoFacebook : SLComposeViewController =
SLComposeViewController(forServiceType:
SLServiceTypeFacebook)
sharetoFacebook.setInitialText("WOW! I scored (rightCounter) right..! Wanna challenge me?")
shareToFacebook.addImage(UIImage(named: "//What should I put here ?"))
self.presentViewController(sharetoFacebook, animated:
true, completion: nil) }
shareToFacebook.addImage(UIImage(named: "//What should I put here ?"))
Nach der Suche fand ich eine Lösung wie: //I put this code inside the ViewController that I want to take screenshot
func snapshot() -> UIImage {
UIGraphicsBeginImageContextWithOptions(self.view.bounds.size, false, UIScreen.mainScreen().scale)
self.view.drawViewHierarchyInRect(self.view.bounds, afterScreenUpdates: true)
let sreenshotImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return screenshotImage // Im getting error over here: saying: UIImageview not convertible to UIImage
}
Aber dann habe ich ein paar Fehler bekommen:
Wenn ich sage: shareToFacebook.addImage(scoreVC.snapshot()) //Not in the ViewController I want to take screenshot
Ich habe einen Fehler als: Im getting missing argument for parameter #1
Und für den obigen Code, func snapshot() -> UIImageView {
Ich bekomme die Fehlermeldung UIImageView not convertible to UIImage
Bitte hilf mir..! Danke im Voraus..! Es wäre eine große Hilfe!
Antworten:
0 für die Antwort № 1Sie müssen die deklarieren snapshot
Methode in den Score-View-Controller, oder wenn Sie es vorziehen, können Sie eine Kategorie auf UIViewController
.
Wenn Sie das Bild jetzt freigeben möchten, benötigen Sie nur Folgendes:
shareToFacebook.addImage(scoreVC.snapshot())