Swift: Реализация ошибки элемента общего доступа shortcutItem(3D touch) "Значение типа AppDelegate не имеет члена присутствующего"
Я пытаюсь реализовать поделиться ярлык (моя реализация):
func application(_ application: UIApplication, performActionFor shortcutItem: UIApplicationShortcutItem, completionHandler: @escaping (Bool) -> Void) {
if shortcutItem.type == "share"{
self.shareItem()
}
}
func shareItem() {
let visitedlink = "http://google.com"
let myWebsite = NSURL(string: visitedlink)
let img: UIImage = UIImage(named:"Logo")!
guard let url = myWebsite else {
print("nothing found")
return
}
let shareItems:Array = [img,url]
let activityViewController:UIActivityViewController = UIActivityViewController(activityItems: shareItems, applicationActivities: nil)
activityViewController.excludedActivityTypes = [UIActivityType.print, UIActivityType.postToWeibo, UIActivityType.copyToPasteboard, UIActivityType.addToReadingList, UIActivityType.postToVimeo, UIActivityType.message, UIActivityType.mail]
self.present(activityViewController, animated: true, completion: nil)
}
Но на этой линии:
self.present(activityViewController, animated: true, completion: nil)
Я получаю эту ошибку:
Value of type AppDelegate has no member of present
Кто-нибудь из вас знает, почему я получаю эту ошибку? или обойти это?
Я очень ценю вашу помощь.
1 ответ
Попробуй это,
public extension UIViewController {
func shareItem() {
let visitedlink = "http://google.com"
let myWebsite = NSURL(string: visitedlink)
let img: UIImage = UIImage(named:"Logo")!
guard let url = myWebsite else {
print("nothing found")
return
}
let shareItems:Array = [img,url]
let activityViewController:UIActivityViewController = UIActivityViewController(activityItems: shareItems, applicationActivities: nil)
activityViewController.excludedActivityTypes = [UIActivityType.print, UIActivityType.postToWeibo, UIActivityType.copyToPasteboard, UIActivityType.addToReadingList, UIActivityType.postToVimeo, UIActivityType.message, UIActivityType.mail]
self.present(activityViewController, animated: true, completion: nil)
}
}