Опция "Показать облачные хранилища" в контроллере представления "Выбор документов" в Swift

Я пытаюсь открыть приложение облачных хранилищ в контроллере представления средства выбора документов. Я применил все необходимые методы делегатов контроллера представления выбора документа. Когда я нажимаю кнопку, отображается окно выбора документа, но значки приложения и их имя не отображаются в нем. Он показывает только вариант просмотра в окне выбора. Я хочу показать все хранилища впереди. Мой код такой,

@IBAction func cloudBtnTapped(_ sender: Any) {

    let importMenu = UIDocumentMenuViewController(documentTypes: [String(kUTTypePDF),String(kUTTypeZipArchive), String (kUTTypePNG), String (kUTTypeJPEG), String (kUTTypeText),String (kUTTypePlainText)], in: .import)
    importMenu.delegate = self
    importMenu.modalPresentationStyle = .fullScreen
    self.present(importMenu, animated: true, completion: nil)
}
 func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentAt url: URL) {

    cico = url as URL as NSURL
    print("The Url is : /(cico)", cico)

    // Start background thread so that image loading does not make app unresponsive
    DispatchQueue.global(qos: .userInitiated).async {

        let imageData:NSData = NSData(contentsOf: self.cico as URL)!

        // When from background thread, UI needs to be updated on main_queue
        DispatchQueue.main.async {
            let image = UIImage(data: imageData as Data)
            self.image1.image = image
        }
    }

    do {
        let weatherData = try NSData(contentsOf: cico as URL, options: NSData.ReadingOptions())
        let activityItems = [weatherData]
        let activityController = UIActivityViewController(activityItems: activityItems, applicationActivities: nil)
        if UI_USER_INTERFACE_IDIOM() == .phone {
            self.present (activityController, animated: true, completion: {
                print("Hello")
            })
        }
        else {
            let popup = UIPopoverController(contentViewController: activityController)
            popup.present(from: CGRect(x: CGFloat(self.view.frame.size.width / 2), y: CGFloat(self.view.frame.size.height / 4), width: CGFloat(0), height: CGFloat(0)), in: self.view, permittedArrowDirections: .any, animated: true)
        }
    } catch {
        print(error)
    }
    //optional, case PDF -> render
    //displayPDFweb.loadRequest(NSURLRequest(url: cico) as URLRequest)
}


func documentMenu(_ documentMenu:     UIDocumentMenuViewController, didPickDocumentPicker documentPicker: UIDocumentPickerViewController) {

    documentPicker.delegate = self
    present(documentPicker, animated: true, completion: nil)
}

func documentPickerWasCancelled(_ controller: UIDocumentPickerViewController) {

    print(" cancelled by user")

   // dismiss(animated: true, completion: nil)
    _ = navigationController?.popViewController(animated: true)
}

Когда вы нажмете кнопку, отобразится окно выбора документа,
введите описание изображения здесь

Но я хочу этого. вид сборщика вот так,
введите описание изображения здесь

Как я могу показать это?

1 ответ

Решение

UIDocumentMenuViewController автоматически отображаются такие параметры, как Dropbox, Google Drive, если вы установили его на своем устройстве, в противном случае он не будет отображаться.

Вы также можете добавить некоторые пользовательские параметры в меню следующим способом...addOptionWithTitle:image:order:handler: метод.

Ты можешь использовать UIDocumentPickerViewController чтобы получить файлы из файловых приложений или iCloud Drive.

let options = [kUTTypePDF as String, kUTTypeZipArchive  as String, kUTTypePNG as String, kUTTypeJPEG as String, kUTTypeText  as String, kUTTypePlainText as String]

let documentPicker: UIDocumentPickerViewController = UIDocumentPickerViewController(documentTypes: options, in: .import)
documentPicker.delegate = self            
documentPicker.modalPresentationStyle = .fullScreen
self.present(documentPicker, animated: true, completion: nil)


extension YourViewController: UIDocumentPickerDelegate {

   func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentsAt urls: [URL]) {

    //from url you can get selected item
   }
}
Другие вопросы по тегам