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 — 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.
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.
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.
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.
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.
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
)
}
}
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 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.
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.
| Parameter | UIDocumentInteractionController | UIDocumentPickerViewController |
|---|---|---|
| Layunin | Magpadala ng file sa ibang app | Pumili ng file mula sa ibang source |
| Source | Sariling file ng app | Anumang storage (iCloud, Files, third-party) |
| Mode | Kopya ng file para sa tatanggap | Import o Export para sa kasalukuyang app |
| Interface | System menu (Action Sheet) | Buong file browser |
| Return | Hindi nagbabalik ng resulta | URL 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
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.
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.
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.
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.
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
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.
Basahin din