UIDocumentInteractionController — mi ez, Open In és dokumentumok

Szerző: IT Sectr Megjelenés: 2026-07-11 Olvasási idő: 6 perc

UIDocumentInteractionController — egy iOS vezérlő dokumentumok előnézetéhez és fájlok megosztásához alkalmazások között. Megvalósítja az Open In funkciót, lehetővé téve a felhasználónak, hogy megnyisson egy fájlt bármely kompatibilis alkalmazásban, elküldje e-mailben, vagy felhőtárhelyen mentse. Az Apple Developer Documentation (2025) szerint a vezérlő támogatja a beépített Preview-t is PDF-ek, képek és irodai dokumentumok megtekintéséhez.

Főbb pontok

  • UIDocumentInteractionController — iOS vezérlő dokumentumok megtekintéséhez és más alkalmazásokba küldéséhez.
  • Preview — beépített megjelenítő PDF-ek, képek és irodai dokumentumok számára alkalmazásváltás nélkül.
  • Open In — fájl átvitelének funkciója másik alkalmazásba szerkesztéshez vagy megtekintéshez.
  • UIDocumentInteractionControllerDelegate kezeli az animációkat, a menü pozícióját és a műveletek befejezését.
  • Ellentétben az UIDocumentPickerViewController-rel, ez az API nem választ ki fájlokat, hanem meglévőket továbbít.

Mi az UIDocumentInteractionController?

UIDocumentInteractionController — egy UIKit osztály, amely rendszerfelületet biztosít a dokumentumokkal való munkához. Ellentétben az UIDocumentPickerViewController-rel, amely fájlokat választ ki, ez a vezérlő egy már meglévő alkalmazásfájllal dolgozik, és műveleteket kínál a felhasználónak: előnézet, megnyitás másik alkalmazásban, nyomtatás vagy küldés.

A vezérlő nem ViewController — nem a present-en keresztül hívódik meg. Ehelyett rendszerművelet-menüt jelenít meg a presentOptionsMenu vagy presentPreview metóduson keresztül. A menü az összes olyan alkalmazást mutatja, amely regisztrálva van az adott fájltípus feldolgozására.

Az UIDocumentInteractionController iOS 2.0 óta érhető el, és az egyik legrégebbi API a dokumentumokkal való munkához. Kora ellenére továbbra is releváns az Open In funkció és a beépített előnézet külső könyvtárak nélküli megvalósításához.

Preview mód: beépített dokumentumnézegető

Preview — egy beépített dokumentumnézegető, amelyet az UIDocumentInteractionController biztosít. Támogatja a PDF-eket, képeket, szövegfájlokat és irodai dokumentumokat (beleértve a .doc, .xls, .ppt formátumokat). A Preview egy átmeneti animációval jelenik meg, hasonlóan a szabványos Quick Look-hoz.

A Preview elindításához hívja meg a presentPreview metódust. A vezérlő delegált igényel a previewControllerForDocumentInteractionController metódus implementációjával, amely egy UIViewController-t ad vissza a dokumentum megjelenítéséhez. Általában self vagy egy navigációs vezérlő kerül visszaadásra.

A beépített Preview nem igényel további keretrendszereket vagy licenceket. Bármely fájllal működik, amelynek URL-je átadásra került a url tulajdonságnak. A felhasználó lapozhatja a PDF-oldalakat, nagyíthatja a képeket és másolhat szöveget a dokumentumokból.

Open In mód: fájlátvitel alkalmazások között

Open In — az UIDocumentInteractionController kulcsfontosságú funkciója. Megjeleníti azoknak az alkalmazásoknak a listáját, amelyek megnyithatják ezt a fájltípust. A felhasználó kiválasztja a célalkalmazást, és az iOS átmásolja a fájlt annak homokozójába, elindítva az alkalmazást a dokumentummal való munkához.

Az alkalmazások listája automatikusan képződik a többi alkalmazás Info.plist fájljában regisztrált Document Type alapján. Ha egy alkalmazás regisztrálta a PDF-támogatást, megjelenik az Open In menüben a PDF-fájlokhoz. A rendszer szabványos műveleteket is mutat: nyomtatás, e-mail küldés, mentés a Fájlokba.

Az Open In másolja a fájlt — a célalkalmazás saját másolatot kap, így a módosítások nem kerülnek vissza az eredeti alkalmazásba. Ha szerkesztés mentéssel szükséges, használja az UIDocumentPickerViewController-t export módban security-scoped URL-lel.

Az UIActivityViewController beállítása alternatívaként

Az iOS 6 óta elérhető UIActivityViewController, amely szintén támogatja a fájlok küldését. Az UIDocumentInteractionController-rel ellentétben az UIActivityViewController egy rendszerművelet-lapot jelenít meg AirDrop, e-mail, üzenetek és egyéni UIActivity támogatásával. Egyszerű fájlküldéshez az UIActivityViewController ajánlott modernebb API-ként.

Kódpélda: Open In Swift-ben

Az Open In megvalósítása az UIDocumentInteractionController-en keresztül mindössze néhány sornyi kódot igényel: példány létrehozása, URL és delegált beállítása, presentOptionsMenu meghívása. A vezérlő automatikusan összegyűjti az elérhető alkalmazások listáját a fájltípus alapján.

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 indítása a menü helyett

A beépített nézegető megjelenítéséhez az Open In menü helyett használja a presentPreview metódust. A vezérlő teljes képernyőn jeleníti meg a dokumentumot lapozási lehetőséggel. A delegáltnak implementálnia kell a previewControllerForDocumentInteractionController metódust, amely egy UIViewController-t ad vissza a megjelenítéshez.

UIDocumentInteractionControllerDelegate és életciklus

UIDocumentInteractionControllerDelegate kezeli a menü és a Preview megjelenítését és elrejtését. A delegált opcionális metódusokat implementál: documentInteractionControllerWillPresentOpenInMenu a megjelenési animációhoz, documentInteractionControllerDidDismissOpenInMenu az erőforrások felszabadításához a menü bezárása után.

Fontos metódus a Preview-hoz — previewControllerForDocumentInteractionController, amelynek egy UIViewController-t kell visszaadnia a dokumentum megjelenítéséhez. Ha a metódus nincs implementálva vagy nil-t ad vissza, a Preview nem indul el. Általában self vagy egy UINavigationController kerül visszaadásra, amely self-et tartalmaz.

A vezérlő támogatja a documentInteractionController:didEndSendingToApplication metódust is, amely a fájl sikeres átvitele után hívódik meg egy másik alkalmazásba. Ez lehetővé teszi az ideiglenes fájl törlését vagy a felület frissítését az alkalmazásba való visszatérés után.

Különbségek az UIDocumentPickerViewController-től

UIDocumentInteractionController és UIDocumentPickerViewController különböző feladatokat old meg, bár mindkettő dokumentumokkal dolgozik. A fő különbség: az UIDocumentInteractionController egy meglévő fájlt továbbít egy másik alkalmazásba, míg az UIDocumentPickerViewController egy fájlt választ ki külső forrásból az aktuális alkalmazás számára.

ParaméterUIDocumentInteractionControllerUIDocumentPickerViewController
CélFájl küldése másik alkalmazásbaFájl kiválasztása másik forrásból
ForrásAz alkalmazás saját fájljaBármely tárhely (iCloud, Fájlok, harmadik fél)
MódA fájl másolatának küldése a címzettnekImport vagy Export az aktuális alkalmazáshoz
FelületRendszermenü (Action Sheet)Teljes fájlböngésző
VisszatérésNem ad vissza eredménytA kiválasztott fájl URL-je a delegáltan keresztül

Az UIDocumentInteractionController nem igényel delegáltat az alapműködéshez — a menü a metódusok implementációja nélkül is megjelenik. Az UIDocumentPickerViewController delegált nélkül haszontalan — a kiválasztás eredménye nem kerül feldolgozásra. Az API kiválasztása a forgatókönyvtől függ: fájl küldése → UIDocumentInteractionController, fájl fogadása → UIDocumentPickerViewController.

Gyakran ismételt kérdések

Mi az UIDocumentInteractionController iOS-ben?

UIDocumentInteractionController — egy UIKit vezérlő dokumentumok előnézetéhez és fájlok átviteléhez alkalmazások között az Open In funkció és a beépített Preview segítségével.

Hogyan lehet megnyitni egy fájlt másik alkalmazásban az UIDocumentInteractionController segítségével?

Hozzon létre egy példányt, állítsa be a url tulajdonságot a célfájlra, adja meg a delegáltat, és hívja meg a presentOptionsMenu metódust. A rendszer megjeleníti az adott fájltípust támogató alkalmazások listáját.

Miben különbözik a Preview a Quick Look-tól?

UIDocumentInteractionController Preview — beépített nézegető egy dokumentumhoz alapvető képességekkel. Quick Look (QLPreviewController) — egy külön keretrendszer kötegelt megtekintés, bővítmények és további fájlformátumok támogatásával.

Implementálni kell a delegáltat az UIDocumentInteractionController-hez?

A delegált opcionális az alapműködéshez — a menü nélküle is megjelenik. Delegált csak a Preview-hoz (previewControllerForDocumentInteractionController metódus) és a fájlküldés befejezésének nyomon követéséhez szükséges.

Miben különbözik az UIDocumentInteractionController az UIDocumentPickerViewController-től?

UIDocumentInteractionController egy meglévő fájlt küld az alkalmazásból egy másikba. UIDocumentPickerViewController egy fájlt választ ki külső forrásból az aktuális alkalmazásba. Az első — küldésre, a második — fogadásra.

Összefoglaló

  • UIDocumentInteractionController — iOS vezérlő fájlok megtekintéséhez és küldéséhez alkalmazások között, elérhető iOS 2.0 óta.
  • Preview beépített megjelenítőt biztosít PDF-ekhez, képekhez és irodai dokumentumokhoz külső könyvtárak nélkül.
  • Open In átmásolja a fájlt a kiválasztott alkalmazás homokozójába — a módosítások nem kerülnek vissza az eredeti alkalmazásba.
  • UIDocumentInteractionControllerDelegate kezeli az animációkat, a menü pozícióját és a küldés befejezését a delegált metódusokon keresztül.
  • presentOptionsMenu megjeleníti a rendszermenüt az adott fájltípushoz elérhető alkalmazásokkal.
  • UIActivityViewController modernebb alternatíva a fájlok küldéséhez iOS 6 óta.
  • Fő különbség az UIDocumentPickerViewController-től: az első fájlt küld az alkalmazásból, a második fájlt választ az alkalmazásba.

Kulcsrakész mobilalkalmazást fejlesztünk

Az IT Sectr 2017 óta készít iOS és Android alkalmazásokat induló vállalkozásoknak és vállalkozásoknak. Tanácsot adunk, és a legjobb megoldást javasoljuk.

Projekt megbeszélése

Olvassa el is