UIDocumentInteractionController — Open In et documents

Auteur : IT Sectr Publié le : 2026-07-11 Temps de lecture : 6 min

UIDocumentInteractionController est un contrôleur iOS permettant de prévisualiser des documents et de partager des fichiers entre applications. Il implémente la fonctionnalité Open In, permettant à l'utilisateur d'ouvrir un fichier dans n'importe quelle application compatible, de l'envoyer par e-mail ou de le sauvegarder dans le cloud. Selon la documentation Apple Developer (2025), le contrôleur prend également en charge l'aperçu intégré pour visualiser les PDF, images et documents bureautiques.

Points clés

  • UIDocumentInteractionController — un contrôleur iOS pour visualiser et envoyer des documents vers d'autres applications.
  • Preview — un visualiseur intégré pour les PDF, images et documents bureautiques sans changer d'application.
  • Open In — une fonction de transfert de fichier vers une autre application pour modification ou visualisation.
  • UIDocumentInteractionControllerDelegate gère les animations, la position du menu et la fin des opérations.
  • Contrairement à UIDocumentPickerViewController, cette API ne sélectionne pas les fichiers mais transfère ceux existants.

Qu'est-ce que UIDocumentInteractionController ?

UIDocumentInteractionController est une classe UIKit qui fournit une interface système pour travailler avec des documents. Contrairement à UIDocumentPickerViewController qui sélectionne des fichiers, ce contrôleur travaille avec un fichier existant de l'application et propose à l'utilisateur des actions : prévisualisation, ouverture dans une autre application, impression ou envoi.

Le contrôleur n'est pas un ViewController — il n'est pas appelé via present. Au lieu de cela, il affiche un menu d'actions système via la méthode presentOptionsMenu ou presentPreview. Le menu montre toutes les applications enregistrées pour traiter le type de fichier donné.

UIDocumentInteractionController est disponible depuis iOS 2.0 et est l'une des plus anciennes API pour travailler avec des documents. Malgré son âge, il reste pertinent pour implémenter la fonctionnalité Open In et l'aperçu intégré sans bibliothèques tierces.

Mode Preview : Visualiseur de documents intégré

Preview est un visualiseur de documents intégré fourni par UIDocumentInteractionController. Il prend en charge les PDF, images, fichiers textes et documents bureautiques (y compris .doc, .xls, .ppt). L'aperçu s'affiche avec une animation de transition similaire à Quick Look standard.

Pour lancer l'aperçu, appelez la méthode presentPreview. Le contrôleur nécessite un délégué qui implémente la méthode previewControllerForDocumentInteractionController, qui retourne un UIViewController pour afficher le document. Généralement, self ou un contrôleur de navigation est retourné.

L'aperçu intégré ne nécessite pas de frameworks ou licences supplémentaires. Il fonctionne avec tout fichier dont l'URL est transmise à la propriété url. Les utilisateurs peuvent faire défiler les pages PDF, zoomer sur les images et copier du texte depuis les documents.

Mode Open In : Transfert de fichiers entre applications

Open In est la fonctionnalité clé de UIDocumentInteractionController. Elle affiche une liste d'applications pouvant ouvrir le type de fichier donné. L'utilisateur sélectionne une application cible, et iOS copie le fichier dans son sandbox, lançant l'application pour travailler avec le document.

La liste des applications est générée automatiquement en fonction des entrées Document Type enregistrées dans Info.plist des autres applications. Si une application a enregistré la prise en charge des PDF, elle apparaîtra dans le menu Open In pour les fichiers PDF. Le système affiche également des actions standard : imprimer, envoyer par e-mail, sauvegarder dans Fichiers.

Open In copie le fichier — l'application cible reçoit sa propre copie, donc les modifications ne sont pas sauvegardées dans l'application d'origine. Si vous avez besoin d'une édition avec sauvegarde, utilisez UIDocumentPickerViewController en mode exportation avec une URL à portée de sécurité.

UIActivityViewController comme alternative

Depuis iOS 6, UIActivityViewController est disponible, qui prend également en charge le partage de fichiers. Contrairement à UIDocumentInteractionController, UIActivityViewController affiche une feuille d'activités système avec prise en charge d'AirDrop, des e-mails, des messages et des UIActivity personnalisés. Pour un partage simple de fichiers, UIActivityViewController est recommandé comme API plus moderne.

Exemple de code : Open In en Swift

L'implémentation d'Open In via UIDocumentInteractionController ne nécessite que quelques lignes de code : créer une instance, définir l'URL et le délégué, appeler presentOptionsMenu. Le contrôleur collecte automatiquement la liste des applications disponibles en fonction du type de fichier.

swift
class DocumentViewController: UIViewController {

    lazy var interactionController = UIDocumentInteractionController()

    func shareFile(url: URL) {
        interactionController.url = url
        interactionController.uti = url.utiType()
        interactionController.delegate = self
        interactionController.presentOptionsMenu(
            from: self.view.bounds,
            in: self.view,
            animated: true
        )
    }
}

Lancer l'aperçu au lieu du menu

Pour afficher le visualiseur intégré au lieu du menu Open In, utilisez la méthode presentPreview. Le contrôleur affichera le document en plein écran avec possibilité de défilement. Le délégué doit implémenter la méthode previewControllerForDocumentInteractionController, retournant un UIViewController pour l'affichage.

UIDocumentInteractionControllerDelegate et cycle de vie

UIDocumentInteractionControllerDelegate gère l'affichage et la fermeture du menu et de l'aperçu. Le délégué implémente des méthodes optionnelles : documentInteractionControllerWillPresentOpenInMenu pour l'animation d'apparition, documentInteractionControllerDidDismissOpenInMenu pour le nettoyage des ressources après la fermeture du menu.

Une méthode importante pour l'aperçu est previewControllerForDocumentInteractionController, qui doit retourner un UIViewController pour afficher le document. Si la méthode n'est pas implémentée ou retourne nil, l'aperçu ne se lancera pas. Généralement, self ou un UINavigationController contenant self est retourné.

Le contrôleur prend également en charge la méthode documentInteractionController:didEndSendingToApplication, qui est appelée après l'envoi réussi du fichier à une autre application. Cela permet de nettoyer les fichiers temporaires ou de mettre à jour l'interface après le retour à l'application.

Différences avec UIDocumentPickerViewController

UIDocumentInteractionController et UIDocumentPickerViewController résolvent des tâches différentes, bien que tous deux travaillent avec des documents. La principale différence : UIDocumentInteractionController transfère un fichier existant vers une autre application, tandis que UIDocumentPickerViewController sélectionne un fichier depuis une source externe pour l'application courante.

ParamètreUIDocumentInteractionControllerUIDocumentPickerViewController
ObjectifEnvoyer un fichier vers une autre applicationSélectionner un fichier depuis une autre source
SourceFichier propre à l'applicationTout stockage (iCloud, Fichiers, tiers)
ModeCopie du fichier au destinataireImport ou Export pour l'application courante
InterfaceMenu système (Action Sheet)Navigateur de fichiers complet
RetourNe retourne pas de résultatURL du fichier sélectionné via le délégué

UIDocumentInteractionController ne nécessite pas de délégué pour le fonctionnement de base — le menu s'affichera même sans implémenter de méthodes. UIDocumentPickerViewController sans délégué est inutile — le résultat de la sélection ne sera pas traité. Le choix de l'API dépend du scénario : envoyer un fichier → UIDocumentInteractionController, recevoir un fichier → UIDocumentPickerViewController.

Foire aux questions

Qu'est-ce que UIDocumentInteractionController sous iOS ?

UIDocumentInteractionController est un contrôleur UIKit pour prévisualiser des documents et transférer des fichiers entre applications via la fonctionnalité Open In et l'aperçu intégré.

Comment ouvrir un fichier dans une autre application avec UIDocumentInteractionController ?

Créez une instance, définissez la propriété url sur le fichier cible, spécifiez le délégué et appelez presentOptionsMenu. Le système affichera une liste d'applications prenant en charge le type de fichier donné.

Quelle est la différence entre Preview et Quick Look ?

UIDocumentInteractionController Preview est un visualiseur intégré pour un seul document avec des capacités de base. Quick Look (QLPreviewController) est un framework séparé avec prise en charge de l'affichage par lots, des extensions et de formats de fichiers supplémentaires.

Dois-je implémenter un délégué pour UIDocumentInteractionController ?

Le délégué est optionnel pour le fonctionnement de base — le menu s'affichera sans lui. Le délégué est obligatoire uniquement pour l'aperçu (méthode previewControllerForDocumentInteractionController) et pour suivre la fin de l'envoi du fichier.

Quelle est la différence entre UIDocumentInteractionController et UIDocumentPickerViewController ?

UIDocumentInteractionController envoie un fichier existant de l'application vers une autre application. UIDocumentPickerViewController sélectionne un fichier depuis une source externe vers l'application courante. Le premier est pour envoyer, le second pour recevoir.

Résumé

  • UIDocumentInteractionController — un contrôleur iOS pour visualiser et envoyer des fichiers entre applications, disponible depuis iOS 2.0.
  • Preview fournit un visualiseur intégré pour les PDF, images et documents bureautiques sans bibliothèques tierces.
  • Open In copie le fichier dans le sandbox de l'application sélectionnée — les modifications ne sont pas retournées à l'application d'origine.
  • UIDocumentInteractionControllerDelegate gère les animations, la position du menu et la fin de l'envoi via les méthodes déléguées.
  • presentOptionsMenu affiche un menu système avec les applications disponibles pour le type de fichier donné.
  • UIActivityViewController est une alternative plus moderne pour le partage de fichiers depuis iOS 6.
  • Différence principale avec UIDocumentPickerViewController : le premier envoie un fichier depuis l'application, le second sélectionne un fichier vers l'application.

Nous développerons une application mobile clé en main

IT Sectr crée des applications iOS et Android pour les startups et les entreprises depuis 2017. Nous vous conseillerons et vous proposerons la meilleure solution.

Discuter du projet

Lisez aussi