У моєму додатку, коли користувач натискає shareToFacebook, мені потрібно, щоб моя програма зробила знімок екрана з іншого ViewController, який щойно отримав оцінку, і поділилася ним із Facebook. Тому я написав код так: (Він працює досить добре),:
Зараз я сумніваюся: для того, щоб зробити знімок екрана з іншого ViewController, який отримав оцінку, який код я повинен вкласти в це:
@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 ?"))
Після пошуку я знайшов таке рішення, як: //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
}
Але потім я отримав деякі помилки, такі як:
Коли я ставлю: shareToFacebook.addImage(scoreVC.snapshot()) //Not in the ViewController I want to take screenshot
Я отримав помилку як: Im getting missing argument for parameter #1
А для вищевказаного коду, func snapshot() -> UIImageView {
Я отримую помилку, кажучи UIImageView not convertible to UIImage
Будь ласка, допоможіть мені! Спасибі заздалегідь..! Це було б великою підмогою!
Відповіді:
0 для відповіді № 1вам потрібно оголосити snapshot
метод у контролер подання результатів, або якщо ви віддаєте перевагу, можете використовувати категорію на UIViewController
.
Тепер, коли ви хочете поділитися зображенням, вам просто потрібно:
shareToFacebook.addImage(scoreVC.snapshot())