Я создаю приложение для чата.Пользователь может поделиться изображениями из другого приложения в моем приложении.Я добавил Share Extension, чтобы показать свое приложение в собственном списке приложений.Я также получаю выбранные данные в методе didSelectPost.Отсюда я хочу показать список пользователей, которым изображение может быть отправлено.Для этого я использую уже созданный контроллер представления в основной цели приложения.
override func didSelectPost() {
// This is called after the user selects Post. Do the upload of contentText and/or NSExtensionContext attachments.
if let content = self.extensionContext!.inputItems[0] as? NSExtensionItem {
let contentType = kUTTypeImage as String
// Verify the provider is valid
if let contents = content.attachments as? [NSItemProvider] {
for attachment in contents {
if attachment.hasItemConformingToTypeIdentifier(contentType) {
attachment.loadItem(forTypeIdentifier: contentType, options: nil) { (data, error) in
let url = data as! URL
let imageData = try! Data(contentsOf: url)
// Here I'm navigating to my viewcontroller, let's say: ForwardVC
}
}
}
}
}
Я не хочу воссоздавать тот же экран в Share Extension.Помимо этих контроллеров представления, у меня есть еще много классов и оболочек, которые я хочу использовать в расширении общего ресурса.Как, например, SocketManager, Webservices и т. Д. Пожалуйста, предложите мне ваш подход для достижения того же.
PS: Я пытался установить несколько целей для требуемых viewControllers и использовать одни и те же модули для Share Extention.При таком подходе я сталкиваюсь со многими проблемами, так как многие методы и модули не соответствуют требованиям расширения.Кроме того, это правильный способ сделать это.