UIDocumentInteractionController — wat is het, Open In en documenten

Auteur: IT Sectr Gepubliceerd: 2026-07-11 Leestijd: 6 min

UIDocumentInteractionController — is een iOS-controller voor het voorbeeldweergave van documenten en het delen van bestanden tussen apps. Het implementeert de functie Open In, waarmee de gebruiker een bestand kan openen in elke compatibele app, per e-mail kan verzenden of in de cloud kan opslaan. Volgens Apple Developer Documentation (2025) ondersteunt de controller ook ingebouwde Preview voor het bekijken van PDF's, afbeeldingen en kantoordocumenten.

Belangrijkste punten

  • UIDocumentInteractionController — iOS-controller voor het bekijken en verzenden van documenten naar andere apps.
  • Preview — ingebouwde viewer voor PDF, afbeeldingen en kantoordocumenten zonder de app te wisselen.
  • Open In — functie voor het overdragen van een bestand naar een andere app voor bewerking of weergave.
  • UIDocumentInteractionControllerDelegate beheert animaties, menupositie en voltooiing van bewerkingen.
  • In tegenstelling tot UIDocumentPickerViewController selecteert deze API geen bestanden, maar draagt bestaande bestanden over.

Wat is UIDocumentInteractionController?

UIDocumentInteractionController — is een UIKit-klasse die een systeeminterface biedt voor het werken met documenten. In tegenstelling tot UIDocumentPickerViewController, dat bestanden selecteert, werkt deze controller met een reeds bestaand bestand van de app en biedt de gebruiker acties: voorbeeldweergave, openen in een andere app, afdrukken of verzenden.

De controller is geen ViewController — deze wordt niet aangeroepen via present. In plaats daarvan toont het een systeemactiemenu via de methode presentOptionsMenu of presentPreview. Het menu toont alle apps die zijn geregistreerd voor de verwerking van dit bestandstype.

UIDocumentInteractionController is beschikbaar sinds iOS 2.0 en is een van de oudste API's voor het werken met documenten. Ondanks zijn leeftijd blijft het relevant voor het implementeren van de Open In-functie en ingebouwde voorbeeldweergave zonder externe bibliotheken.

Preview-modus: ingebouwde documentviewer

Preview — is een ingebouwde documentviewer die wordt geleverd door UIDocumentInteractionController. Het ondersteunt PDF, afbeeldingen, tekstbestanden en kantoordocumenten (inclusief .doc, .xls, .ppt). Preview wordt weergegeven met een overgangsanimatie vergelijkbaar met standaard Quick Look.

Om Preview te starten, roept u de methode presentPreview aan. De controller vereist een gedelegeerde met implementatie van de methode previewControllerForDocumentInteractionController, die een UIViewController retourneert voor het weergeven van het document. Meestal wordt self of een navigatiecontroller geretourneerd.

Ingebouwde Preview vereist geen extra frameworks of licenties. Het werkt met elk bestand waarvan de URL is doorgegeven aan de eigenschap url. De gebruiker kan PDF-pagina's doorbladeren, afbeeldingen schalen en tekst uit documenten kopiëren.

Open In-modus: bestanden overdragen tussen apps

Open In — de belangrijkste functie van UIDocumentInteractionController. Het toont een lijst van apps die dit bestandstype kunnen openen. De gebruiker selecteert de doelapp en iOS kopieert het bestand naar de sandbox ervan, waarbij de app wordt gestart om met het document te werken.

De lijst met apps wordt automatisch gevormd op basis van geregistreerde Document Type in Info.plist van andere apps. Als een app ondersteuning voor PDF heeft geregistreerd, verschijnt deze in het Open In-menu voor PDF-bestanden. Het systeem toont ook standaardacties: afdrukken, e-mailen, opslaan in Bestanden.

Open In kopieert het bestand — de doelapp ontvangt een eigen kopie, dus wijzigingen worden niet terug opgeslagen in de oorspronkelijke app. Als bewerking met opslag vereist is, gebruik dan UIDocumentPickerViewController in de exportmodus met een security-scoped URL.

UIActivityViewController configureren als alternatief

Sinds iOS 6 is UIActivityViewController beschikbaar, dat ook het verzenden van bestanden ondersteunt. In tegenstelling tot UIDocumentInteractionController toont UIActivityViewController een systeemactievel met ondersteuning voor AirDrop, e-mail, berichten en aangepaste UIActivity. Voor eenvoudig bestandsverzenden wordt UIActivityViewController aanbevolen als modernere API.

Codevoorbeeld: Open In in Swift

Implementatie van Open In via UIDocumentInteractionController vereist slechts een paar regels code: een instantie maken, de URL en gedelegeerde instellen, presentOptionsMenu aanroepen. De controller verzamelt automatisch de lijst met beschikbare apps op basis van het bestandstype.

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
        )
    }
}

Preview starten in plaats van het menu

Om de ingebouwde viewer weer te geven in plaats van het Open In-menu, gebruikt u de methode presentPreview. De controller toont het document op volledig scherm met de mogelijkheid om te bladeren. De gedelegeerde moet de methode previewControllerForDocumentInteractionController implementeren die een UIViewController retourneert voor weergave.

UIDocumentInteractionControllerDelegate en levenscyclus

UIDocumentInteractionControllerDelegate beheert het tonen en verbergen van het menu en Preview. De gedelegeerde implementeert optionele methoden: documentInteractionControllerWillPresentOpenInMenu voor de verschijningsanimatie, documentInteractionControllerDidDismissOpenInMenu voor het opschonen van bronnen na het sluiten van het menu.

Belangrijke methode voor Preview — previewControllerForDocumentInteractionController, die een UIViewController moet retourneren voor het weergeven van het document. Als de methode niet is geïmplementeerd of nil retourneert, wordt Preview niet gestart. Meestal wordt self of een UINavigationController die self bevat geretourneerd.

De controller ondersteunt ook de methode documentInteractionController:didEndSendingToApplication, die wordt aangeroepen na succesvolle overdracht van het bestand naar een andere app. Dit maakt het mogelijk om het tijdelijke bestand op te schonen of de interface bij te werken na terugkeer in de app.

Verschillen met UIDocumentPickerViewController

UIDocumentInteractionController en UIDocumentPickerViewController lossen verschillende taken op, hoewel beide met documenten werken. Het belangrijkste verschil: UIDocumentInteractionController draagt een bestaand bestand over aan een andere app, terwijl UIDocumentPickerViewController een bestand selecteert uit een externe bron voor de huidige app.

ParameterUIDocumentInteractionControllerUIDocumentPickerViewController
DoelBestand naar een andere app verzendenBestand uit een andere bron selecteren
BronEigen bestand van de appElke opslag (iCloud, Bestanden, externe partij)
ModusKopie van het bestand naar ontvangerImport of Export voor de huidige app
InterfaceSysteemmenu (Action Sheet)Volledige bestandsbrowser
RetourRetourneert geen resultaatURL van geselecteerd bestand via gedelegeerde

UIDocumentInteractionController vereist geen gedelegeerde voor basiswerking — het menu wordt weergegeven zelfs zonder implementatie van methoden. UIDocumentPickerViewController zonder gedelegeerde is nutteloos — het selectieresultaat wordt niet verwerkt. De keuze van API hangt af van het scenario: bestand verzenden → UIDocumentInteractionController, bestand ontvangen → UIDocumentPickerViewController.

Veelgestelde vragen

Wat is UIDocumentInteractionController in iOS?

UIDocumentInteractionController — is een UIKit-controller voor voorbeeldweergave van documenten en het overdragen van bestanden tussen apps via de functie Open In en ingebouwde Preview.

Hoe open ik een bestand in een andere app via UIDocumentInteractionController?

Maak een instantie, stel de eigenschap url in op het doelbestand, geef de gedelegeerde op en roep presentOptionsMenu aan. Het systeem toont een lijst met apps die dit bestandstype ondersteunen.

Waarin verschilt Preview van Quick Look?

UIDocumentInteractionController Preview — een ingebouwde viewer voor één document met basisfunctionaliteit. Quick Look (QLPreviewController) — een apart framework met ondersteuning voor batchweergave, extensies en extra bestandsformaten.

Moet ik een gedelegeerde implementeren voor UIDocumentInteractionController?

De gedelegeerde is optioneel voor basiswerking — het menu wordt zonder weergegeven. Een gedelegeerde is alleen vereist voor Preview (methode previewControllerForDocumentInteractionController) en voor het volgen van de voltooiing van bestandsverzending.

Waarin verschilt UIDocumentInteractionController van UIDocumentPickerViewController?

UIDocumentInteractionController verzendt een bestaand bestand van de app naar een andere. UIDocumentPickerViewController selecteert een bestand uit een externe bron in de huidige app. De eerste is voor verzenden, de tweede voor ontvangen.

Samenvatting

  • UIDocumentInteractionController — iOS-controller voor het bekijken en verzenden van bestanden tussen apps, beschikbaar sinds iOS 2.0.
  • Preview biedt ingebouwde weergave van PDF, afbeeldingen en kantoordocumenten zonder externe bibliotheken.
  • Open In kopieert het bestand naar de sandbox van de geselecteerde app — wijzigingen worden niet teruggezet naar de oorspronkelijke app.
  • UIDocumentInteractionControllerDelegate beheert animaties, menupositie en voltooiing van verzending via gedelegeerdemethoden.
  • presentOptionsMenu toont het systeemmenu met beschikbare apps voor dit bestandstype.
  • UIActivityViewController is een moderner alternatief voor het verzenden van bestanden sinds iOS 6.
  • Belangrijkste verschil met UIDocumentPickerViewController: de eerste verzendt een bestand vanuit de app, de tweede selecteert een bestand in de app.

We ontwikkelen een mobiele applicatie turnkey

IT Sectr creëert sinds 2017 iOS- en Android-applicaties voor startups en bedrijven. We adviseren u en stellen de beste oplossing voor.

Bespreek het project

Lees ook