W mojej aplikacji, gdy użytkownik kliknie shareToFacebookprzycisk, potrzebuję mojej aplikacji do zrobienia zrzutu ekranu z innego kontrolera ViewController, który właśnie uzyskał wynik, i udostępnienia go na Facebooku. Tak więc napisałem kod w ten sposób: (Działa całkiem nieźle),:
Teraz mam wątpliwości: aby zrobić zrzut ekranu z innego ViewControllera, który ma wynik, jaki kod powinienem w to wstawić:
@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 ?"))
Po przeszukaniu znalazłem rozwiązanie takie jak: //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
}
Ale potem pojawiły się błędy, takie jak:
Kiedy umieściłem: shareToFacebook.addImage(scoreVC.snapshot()) //Not in the ViewController I want to take screenshot
Wystąpił błąd jako: Im getting missing argument for parameter #1
A dla powyższego kodu func snapshot() -> UIImageView {
Dostaję błąd mówiący UIImageView not convertible to UIImage
Proszę pomóż mi..! Z góry dziękuję..! To byłaby wielka pomoc!
Odpowiedzi:
0 dla odpowiedzi № 1musisz zadeklarować snapshot
do kontrolera widoku wyniku lub, jeśli wolisz, możesz użyć kategorii na UIViewController
.
Teraz, gdy chcesz udostępnić obraz, potrzebujesz tylko:
shareToFacebook.addImage(scoreVC.snapshot())