UIDocumentInteractionController — ano ito, Open In at mga dokumento

May-akda: IT Sectr Nai-publish: 2026-07-11 Oras ng pagbabasa: 6 min

UIDocumentInteractionController — ay isang iOS controller para sa preview ng dokumento at pagbabahagi ng file sa pagitan ng mga app. Ito ay nagpapatupad ng function na Open In, na nagpapahintulot sa user na magbukas ng file sa anumang katugmang app, ipadala ito sa email, o i-save sa cloud storage. Ayon sa Apple Developer Documentation (2025), sinusuportahan din ng controller ang built-in na Preview para sa pagtingin ng PDF, mga larawan, at mga dokumento sa opisina.

Mga pangunahing punto

  • UIDocumentInteractionController — iOS controller para sa pagtingin at pagpapadala ng dokumento sa ibang mga app.
  • Preview — built-in na viewer para sa PDF, mga larawan, at mga dokumento sa opisina nang hindi lumilipat ng app.
  • Open In — function ng paglilipat ng file sa ibang app para sa pag-edit o pagtingin.
  • UIDocumentInteractionControllerDelegate namamahala ng mga animation, posisyon ng menu, at pagkumpleto ng mga operasyon.
  • Hindi tulad ng UIDocumentPickerViewController, ang API na ito ay hindi pumipili ng mga file, kundi naglilipat ng mga umiiral na file.

Ano ang UIDocumentInteractionController?

UIDocumentInteractionController — ay isang klase ng UIKit na nagbibigay ng system interface para sa pagtatrabaho sa mga dokumento. Hindi tulad ng UIDocumentPickerViewController na pumipili ng mga file, ang controller na ito ay gumagana sa isang umiiral nang file ng app at nag-aalok ng mga aksyon sa user: preview, buksan sa ibang app, i-print, o ipadala.

Ang controller ay hindi ViewController — hindi ito tinatawag sa pamamagitan ng present. Sa halip, nagpapakita ito ng system action menu sa pamamagitan ng method na presentOptionsMenu o presentPreview. Ipinapakita ng menu ang lahat ng app na nakarehistro para sa pagproseso ng ganitong uri ng file.

Ang UIDocumentInteractionController ay available mula noong iOS 2.0 at isa sa mga pinakalumang API para sa pagtatrabaho sa mga dokumento. Sa kabila ng edad nito, nananatiling may kaugnayan para sa pagpapatupad ng function na Open In at built-in na preview nang hindi gumagamit ng mga third-party na library.

Mode Preview: built-in na viewer ng dokumento

Preview — ay isang built-in na viewer ng dokumento na ibinibigay ng UIDocumentInteractionController. Sinusuportahan nito ang PDF, mga larawan, text file, at mga dokumento sa opisina (kabilang ang .doc, .xls, .ppt). Ipinapakita ang Preview na may transition animation na katulad ng standard na Quick Look.

Para simulan ang Preview, tawagan ang method na presentPreview. Ang controller ay nangangailangan ng delegate na may implementasyon ng method na previewControllerForDocumentInteractionController, na nagbabalik ng UIViewController para sa pagpapakita ng dokumento. Karaniwang nagbabalik ng self o navigation controller.

Ang built-in na Preview ay hindi nangangailangan ng mga karagdagang framework o lisensya. Gumagana ito sa anumang file na ang URL ay naipasa sa property na url. Maaaring i-flip ng user ang mga pahina ng PDF, i-scale ang mga larawan, at kopyahin ang text mula sa mga dokumento.

Mode Open In: paglilipat ng file sa pagitan ng mga app

Open In — ang pangunahing function ng UIDocumentInteractionController. Ipinapakita nito ang listahan ng mga app na maaaring magbukas ng ganitong uri ng file. Pinipili ng user ang target na app, at kinokopya ng iOS ang file sa sandbox nito, inilulunsad ang app para sa pagtatrabaho sa dokumento.

Ang listahan ng mga app ay awtomatikong nabubuo batay sa nakarehistrong Document Type sa Info.plist ng ibang mga app. Kung ang isang app ay nagrehistro ng suporta para sa PDF, lalabas ito sa menu ng Open In para sa mga PDF file. Ipinapakita rin ng system ang mga standard na aksyon: i-print, ipadala sa email, i-save sa Files.

Ang Open In ay kinokopya ang file — ang target na app ay tumatanggap ng sarili nitong kopya, kaya ang mga pagbabago ay hindi nai-save pabalik sa orihinal na app. Kung kinakailangan ang pag-edit na may pag-save, gamitin ang UIDocumentPickerViewController sa export mode na may security-scoped na URL.

Pagsasaayos ng UIActivityViewController bilang alternatibo

Mula noong iOS 6, available ang UIActivityViewController, na sumusuporta din sa pagpapadala ng file. Hindi tulad ng UIDocumentInteractionController, ang UIActivityViewController ay nagpapakita ng system action sheet na may suporta para sa AirDrop, email, mensahe, at custom na UIActivity. Para sa simpleng pagpapadala ng file, inirerekomenda ang UIActivityViewController bilang mas modernong API.

Halimbawa ng code: Open In sa Swift

Ang implementasyon ng Open In sa pamamagitan ng UIDocumentInteractionController ay nangangailangan lamang ng ilang linya ng code: gumawa ng instance, itakda ang URL at delegate, tawagan ang presentOptionsMenu. Awtomatikong kinokolekta ng controller ang listahan ng mga available na app batay sa uri ng file.

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

Pagsisimula ng Preview sa halip ng menu

Para ipakita ang built-in na viewer sa halip ng menu ng Open In, gamitin ang method na presentPreview. Ipapakita ng controller ang dokumento sa buong screen na may kakayahang mag-flip. Ang delegate ay dapat magpatupad ng method na previewControllerForDocumentInteractionController na nagbabalik ng UIViewController para sa pagpapakita.

UIDocumentInteractionControllerDelegate at lifecycle

UIDocumentInteractionControllerDelegate namamahala ng pagpapakita at pagtatago ng menu at Preview. Ang delegate ay nagpapatupad ng mga opsyonal na method: documentInteractionControllerWillPresentOpenInMenu para sa animation ng paglitaw, documentInteractionControllerDidDismissOpenInMenu para sa paglilinis ng resources pagkatapos isara ang menu.

Mahalagang method para sa Preview — previewControllerForDocumentInteractionController, na dapat magbalik ng UIViewController para sa pagpapakita ng dokumento. Kung ang method ay hindi naipatupad o nagbalik ng nil, hindi magsisimula ang Preview. Karaniwang nagbabalik ng self o UINavigationController na naglalaman ng self.

Sinusuportahan din ng controller ang method na documentInteractionController:didEndSendingToApplication, na tinatawag pagkatapos ng matagumpay na paglipat ng file sa ibang app. Pinapayagan nito ang paglilinis ng pansamantalang file o pag-update ng interface pagkatapos bumalik sa app.

Mga pagkakaiba sa UIDocumentPickerViewController

UIDocumentInteractionController at UIDocumentPickerViewController ay lumulutas ng magkakaibang gawain, bagaman pareho silang gumagana sa mga dokumento. Ang pangunahing pagkakaiba: ang UIDocumentInteractionController ay naglilipat ng umiiral na file sa ibang app, habang ang UIDocumentPickerViewController ay pumipili ng file mula sa panlabas na source para sa kasalukuyang app.

ParameterUIDocumentInteractionControllerUIDocumentPickerViewController
LayuninMagpadala ng file sa ibang appPumili ng file mula sa ibang source
SourceSariling file ng appAnumang storage (iCloud, Files, third-party)
ModeKopya ng file para sa tatanggapImport o Export para sa kasalukuyang app
InterfaceSystem menu (Action Sheet)Buong file browser
ReturnHindi nagbabalik ng resultaURL ng napiling file sa pamamagitan ng delegate

Ang UIDocumentInteractionController ay hindi nangangailangan ng delegate para sa pangunahing trabaho — lalabas ang menu kahit walang implementasyon ng mga method. Ang UIDocumentPickerViewController na walang delegate ay walang silbi — hindi mapoproseso ang resulta ng pagpili. Ang pagpili ng API ay depende sa senaryo: pagpapadala ng file → UIDocumentInteractionController, pagtanggap ng file → UIDocumentPickerViewController.

Mga madalas itanong

Ano ang UIDocumentInteractionController sa iOS?

UIDocumentInteractionController — ay isang UIKit controller para sa preview ng dokumento at paglilipat ng file sa pagitan ng mga app sa pamamagitan ng function na Open In at built-in na Preview.

Paano magbukas ng file sa ibang app sa pamamagitan ng UIDocumentInteractionController?

Gumawa ng instance, itakda ang property na url sa target na file, ituro ang delegate, at tawagan ang presentOptionsMenu. Ipapakita ng system ang listahan ng mga app na sumusuporta sa ganitong uri ng file.

Paano naiiba ang Preview sa Quick Look?

UIDocumentInteractionController Preview — built-in na viewer para sa isang dokumento na may mga pangunahing kakayahan. Quick Look (QLPreviewController) — isang hiwalay na framework na may suporta para sa batch viewing, extensions, at karagdagang format ng file.

Kailangan bang magpatupad ng delegate para sa UIDocumentInteractionController?

Ang delegate ay opsyonal para sa pangunahing trabaho — lalabas ang menu kahit wala ito. Ang delegate ay kinakailangan lamang para sa Preview (method na previewControllerForDocumentInteractionController) at para sa pagsubaybay ng pagkumpleto ng pagpapadala ng file.

Paano naiiba ang UIDocumentInteractionController sa UIDocumentPickerViewController?

UIDocumentInteractionController ay nagpapadala ng umiiral na file mula sa app patungo sa iba. UIDocumentPickerViewController ay pumipili ng file mula sa panlabas na source papunta sa kasalukuyang app. Ang una — para sa pagpapadala, ang pangalawa — para sa pagtanggap.

Buod

  • UIDocumentInteractionController — iOS controller para sa pagtingin at pagpapadala ng file sa pagitan ng mga app, available mula noong iOS 2.0.
  • Preview ay nagbibigay ng built-in na viewer para sa PDF, mga larawan, at mga dokumento sa opisina nang walang third-party na library.
  • Open In ay kinokopya ang file sa sandbox ng napiling app — ang mga pagbabago ay hindi bumabalik sa orihinal na app.
  • UIDocumentInteractionControllerDelegate namamahala ng mga animation, posisyon ng menu, at pagkumpleto ng pagpapadala sa pamamagitan ng mga method ng delegate.
  • presentOptionsMenu ay nagpapakita ng system menu na may mga available na app para sa ganitong uri ng file.
  • UIActivityViewController ay isang mas modernong alternatibo para sa pagpapadala ng file mula noong iOS 6.
  • Pangunahing pagkakaiba sa UIDocumentPickerViewController: ang una ay nagpapadala ng file mula sa app, ang pangalawa ay pumipili ng file papunta sa app.

Gagawa kami ng mobile application na turnkey

Gumagawa ang IT Sectr ng mga iOS at Android application para sa mga startup at negosyo mula noong 2017. Magpapayo kami sa iyo at magmumungkahi ng pinakamahusay na solusyon.

Pag-usapan ang proyekto

Basahin din