web-dev-qa-db-fra.com

Initialisation de UidocumentPickerviefController dans iOS 14

J'ai un UIDocumentPickerViewController qui ne choisit que des images. Cela fonctionne bien dans iOS 13:

let supportedTypes: [String] = ["public.image"]
let documentPickerViewController = UIDocumentPickerViewController(documentTypes: supportedTypes, in: .import)

J'essaie d'atteindre la même chose dans IOS 14.

Cependant, init(documentTypes:in:) a été obsolète dans IOS 14.0.

Donc, je suppose que je dois utiliser cet initialisateur à la place: init(forOpeningContentTypes:asCopy:)

L'argument forOpeningContentTypes attend un tableau de UTType.
[.____] Je ne sais pas comment utiliser/importer.
[.____] Est-ce comme [UTType.Image]?

let supportedTypes: [UTType] = [UTType.Image]
self.viewController = UIDocumentPickerViewController(forOpeningContentTypes: supportedTypes, asCopy: true)

????????? Cela ne compilera même pas parce que Cannot find type 'UTType' in scope.
J'ai aussi essayé import MobileCoreServices Et même import CoreServices, Mais cela n'a pas aidé.

La documentation pour le nouvel initialisateur de sélecteur de documents pointe sur cette ttaleperenceferenceference - alors j'ai essayé d'utiliser cela, mais cela ne peut pas être trouvé non plus.

Comment puis-je avoir un UIDocumentPickerViewController qui choisit uniquement des images dans iOS 14?

Mettre à jour

Cela fonctionne (merci @warren):

import UniformTypeIdentifiers
let supportedTypes: [UTType] = [UTType.image]
let pickerViewController = UIDocumentPickerViewController(forOpeningContentTypes: supportedTypes, asCopy: true)
5
backslash-f

Ajouter import UniformTypeIdentifiers à votre Swift fichier pour accéder à UTType

Voir la documentation pour plus d'usages.

Et la Vidéo WWDC202 "Construire des applications basées sur des documents à Swiftui" pour une démonstration pratique.

13
Warren Burton