UIDocumentInteractionController — Open In und Dokumente

Autor: IT Sectr Veröffentlicht: 2026-07-11 Lesezeit: 6 Min.

UIDocumentInteractionController ist ein iOS-Controller zur Vorschau von Dokumenten und zum Teilen von Dateien zwischen Apps. Er implementiert die Open In-Funktion, die es dem Benutzer ermöglicht, eine Datei in einer beliebigen kompatiblen App zu öffnen, per E-Mail zu senden oder in der Cloud zu speichern. Laut Apple Developer Documentation (2025) unterstützt der Controller auch die integrierte Vorschau zum Anzeigen von PDFs, Bildern und Office-Dokumenten.

Wichtige Punkte

  • UIDocumentInteractionController — ein iOS-Controller zum Anzeigen und Senden von Dokumenten an andere Apps.
  • Preview — ein integrierter Viewer für PDFs, Bilder und Office-Dokumente ohne App-Wechsel.
  • Open In — eine Funktion zur Übertragung von Dateien an eine andere App zum Bearbeiten oder Anzeigen.
  • UIDocumentInteractionControllerDelegate verwaltet Animationen, Menüposition und Abschluss von Vorgängen.
  • Im Gegensatz zu UIDocumentPickerViewController wählt diese API keine Dateien aus, sondern überträgt vorhandene.

Was ist UIDocumentInteractionController?

UIDocumentInteractionController ist eine UIKit-Klasse, die eine Systemschnittstelle für die Arbeit mit Dokumenten bereitstellt. Im Gegensatz zu UIDocumentPickerViewController, der Dateien auswählt, arbeitet dieser Controller mit einer vorhandenen App-Datei und bietet dem Benutzer Aktionen: Vorschau, Öffnen in einer anderen App, Drucken oder Senden.

Der Controller ist kein ViewController — er wird nicht über present aufgerufen. Stattdessen zeigt er ein Systemaktionsmenü über die Methode presentOptionsMenu oder presentPreview an. Das Menü zeigt alle Apps an, die für die Verarbeitung des angegebenen Dateityps registriert sind.

UIDocumentInteractionController ist seit iOS 2.0 verfügbar und eine der ältesten APIs für die Arbeit mit Dokumenten. Trotz seines Alters ist er nach wie vor relevant für die Implementierung der Open In-Funktion und der integrierten Vorschau ohne Drittanbieter-Bibliotheken.

Preview-Modus: Integrierter Dokumenten-Viewer

Preview ist ein integrierter Dokumenten-Viewer, der von UIDocumentInteractionController bereitgestellt wird. Er unterstützt PDFs, Bilder, Textdateien und Office-Dokumente (einschließlich .doc, .xls, .ppt). Die Vorschau wird mit einer Übergangsanimation ähnlich der standardmäßigen Quick Look angezeigt.

Um die Vorschau zu starten, rufen Sie die Methode presentPreview auf. Der Controller benötigt einen Delegaten, der die Methode previewControllerForDocumentInteractionController implementiert, die ein UIViewController zur Anzeige des Dokuments zurückgibt. Normalerweise wird self oder ein Navigationscontroller zurückgegeben.

Die integrierte Vorschau erfordert keine zusätzlichen Frameworks oder Lizenzen. Sie funktioniert mit jeder Datei, deren URL an die Eigenschaft url übergeben wird. Benutzer können durch PDF-Seiten blättern, Bilder zoomen und Text aus Dokumenten kopieren.

Open In-Modus: Dateiübertragung zwischen Apps

Open In ist die Kernfunktion von UIDocumentInteractionController. Sie zeigt eine Liste von Apps an, die den angegebenen Dateityp öffnen können. Der Benutzer wählt eine Ziel-App aus, und iOS kopiert die Datei in deren Sandbox und startet die App zur Bearbeitung des Dokuments.

Die App-Liste wird automatisch basierend auf den registrierten Document Type-Einträgen in den Info.plist-Dateien anderer Apps generiert. Wenn eine App PDF-Unterstützung registriert hat, wird sie im Open In-Menü für PDF-Dateien angezeigt. Das System zeigt auch Standardaktionen an: Drucken, per E-Mail senden, in Dateien speichern.

Open In kopiert die Datei — die Ziel-App erhält eine eigene Kopie, daher werden Änderungen nicht in der ursprünglichen App gespeichert. Wenn Sie eine Bearbeitung mit Speicherung benötigen, verwenden Sie UIDocumentPickerViewController im Exportmodus mit einer sicherheitsbezogenen URL.

UIActivityViewController als Alternative

Seit iOS 6 ist UIActivityViewController verfügbar, der ebenfalls Dateifreigabe unterstützt. Im Gegensatz zu UIDocumentInteractionController zeigt UIActivityViewController ein Systemaktivitätsblatt mit Unterstützung für AirDrop, E-Mail, Nachrichten und benutzerdefinierte UIActivity. Für einfache Dateifreigabe wird UIActivityViewController als modernere API empfohlen.

Codebeispiel: Open In in Swift

Die Implementierung von Open In über UIDocumentInteractionController erfordert nur wenige Codezeilen: Eine Instanz erstellen, URL und Delegaten festlegen, presentOptionsMenu aufrufen. Der Controller sammelt automatisch die Liste der verfügbaren Apps basierend auf dem Dateityp.

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 statt Menü starten

Um den integrierten Viewer anstelle des Open In-Menüs anzuzeigen, verwenden Sie die Methode presentPreview. Der Controller zeigt das Dokument im Vollbildmodus mit Scrollfunktion an. Der Delegat muss die Methode previewControllerForDocumentInteractionController implementieren, die ein UIViewController zur Anzeige zurückgibt.

UIDocumentInteractionControllerDelegate und Lebenszyklus

UIDocumentInteractionControllerDelegate verwaltet die Anzeige und das Ausblenden des Menüs und der Vorschau. Der Delegat implementiert optionale Methoden: documentInteractionControllerWillPresentOpenInMenu für die Einblendungsanimation, documentInteractionControllerDidDismissOpenInMenu für die Ressourcenbereinigung nach dem Ausblenden des Menüs.

Eine wichtige Methode für die Vorschau ist previewControllerForDocumentInteractionController, die ein UIViewController zur Anzeige des Dokuments zurückgeben muss. Wenn die Methode nicht implementiert ist oder nil zurückgibt, wird die Vorschau nicht gestartet. Normalerweise wird self oder ein UINavigationController, der self enthält, zurückgegeben.

Der Controller unterstützt auch die Methode documentInteractionController:didEndSendingToApplication, die nach erfolgreichem Senden der Datei an eine andere App aufgerufen wird. Dies ermöglicht die Bereinigung temporärer Dateien oder die Aktualisierung der Oberfläche nach der Rückkehr zur App.

Unterschiede zu UIDocumentPickerViewController

UIDocumentInteractionController und UIDocumentPickerViewController lösen unterschiedliche Aufgaben, obwohl beide mit Dokumenten arbeiten. Der Hauptunterschied: UIDocumentInteractionController überträgt eine vorhandene Datei an eine andere App, während UIDocumentPickerViewController eine Datei aus einer externen Quelle für die aktuelle App auswählt.

ParameterUIDocumentInteractionControllerUIDocumentPickerViewController
ZweckDatei an andere App sendenDatei aus anderer Quelle auswählen
QuelleEigene App-DateiBeliebiger Speicher (iCloud, Dateien, Drittanbieter)
ModusKopie der Datei an EmpfängerImport oder Export für aktuelle App
SchnittstelleSystemmenü (Action Sheet)Vollständiger Datei-Browser
RückgabeGibt kein Ergebnis zurückURL der ausgewählten Datei über Delegaten

UIDocumentInteractionController erfordert keinen Delegaten für den grundlegenden Betrieb — das Menü wird auch ohne Implementierung von Methoden angezeigt. UIDocumentPickerViewController ohne Delegaten ist nutzlos — das Auswahlergebnis wird nicht verarbeitet. Die API-Auswahl hängt vom Szenario ab: Datei senden → UIDocumentInteractionController, Datei empfangen → UIDocumentPickerViewController.

Häufig gestellte Fragen

Was ist UIDocumentInteractionController in iOS?

UIDocumentInteractionController ist ein UIKit-Controller zur Vorschau von Dokumenten und zur Übertragung von Dateien zwischen Apps über die Open In-Funktion und die integrierte Vorschau.

Wie öffne ich eine Datei in einer anderen App mit UIDocumentInteractionController?

Erstellen Sie eine Instanz, setzen Sie die Eigenschaft url auf die Zieldatei, geben Sie den Delegaten an und rufen Sie presentOptionsMenu auf. Das System zeigt eine Liste von Apps an, die den angegebenen Dateityp unterstützen.

Was ist der Unterschied zwischen Preview und Quick Look?

UIDocumentInteractionController Preview ist ein integrierter Viewer für ein einzelnes Dokument mit grundlegenden Funktionen. Quick Look (QLPreviewController) ist ein separates Framework mit Unterstützung für Batch-Anzeige, Erweiterungen und zusätzliche Dateiformate.

Muss ich einen Delegaten für UIDocumentInteractionController implementieren?

Der Delegat ist für den grundlegenden Betrieb optional — das Menü wird auch ohne ihn angezeigt. Der Delegat ist nur für die Vorschau (Methode previewControllerForDocumentInteractionController) und zur Verfolgung des Dateisendeabschlusses erforderlich.

Was ist der Unterschied zwischen UIDocumentInteractionController und UIDocumentPickerViewController?

UIDocumentInteractionController sendet eine vorhandene Datei aus der App an eine andere App. UIDocumentPickerViewController wählt eine Datei aus einer externen Quelle für die aktuelle App aus. Ersteres ist zum Senden, Letzteres zum Empfangen.

Zusammenfassung

  • UIDocumentInteractionController — ein iOS-Controller zum Anzeigen und Senden von Dateien zwischen Apps, verfügbar seit iOS 2.0.
  • Preview bietet einen integrierten Viewer für PDFs, Bilder und Office-Dokumente ohne Drittanbieter-Bibliotheken.
  • Open In kopiert die Datei in die Sandbox der ausgewählten App — Änderungen werden nicht an die ursprüngliche App zurückgegeben.
  • UIDocumentInteractionControllerDelegate verwaltet Animationen, Menüposition und Sendeabschluss über Delegatenmethoden.
  • presentOptionsMenu zeigt ein Systemmenü mit verfügbaren Apps für den angegebenen Dateityp an.
  • UIActivityViewController ist eine modernere Alternative zur Dateifreigabe seit iOS 6.
  • Hauptunterschied zu UIDocumentPickerViewController: Ersteres sendet eine Datei aus der App, Letzteres wählt eine Datei in die App.

Wir entwickeln eine mobile Applikation schlüsselfertig

IT Sectr entwickelt seit 2017 iOS- und Android-Apps für Startups und Unternehmen. Wir beraten Sie und schlagen die beste Lösung vor.

Projekt besprechen

Lesen Sie auch