UIDocumentInteractionController — bu nima, Open In va hujjatlar

Muallif: IT Sectr Nashr etilgan: 2026-07-11 O'qish vaqti: 6 daq

UIDocumentInteractionController — iOS-da hujjatlarni oldindan ko'rish va ilovalar o'rtasida fayllarni almashish uchun boshqaruvchi. U Open In funksiyasini amalga oshirib, foydalanuvchiga faylni istalgan mos ilovada ochish, pochta orqali yuborish yoki bulutli saqlashda saqlash imkonini beradi. Apple Developer Documentation (2025) ma'lumotlariga ko'ra, boshqaruvchi PDF, rasmlar va ofis hujjatlarini ko'rish uchun o'rnatilgan Preview-ni ham qo'llab-quvvatlaydi.

Asosiy nuqtalar

  • UIDocumentInteractionController — iOS-da hujjatlarni ko'rish va boshqa ilovalarga yuborish uchun boshqaruvchi.
  • Preview — ilovani almashtirmasdan PDF, rasm va ofis hujjatlarini ko'rish uchun o'rnatilgan ko'ruvchi.
  • Open In — faylni tahrirlash yoki ko'rish uchun boshqa ilovaga uzatish funksiyasi.
  • UIDocumentInteractionControllerDelegate animatsiyalar, menyu pozitsiyasi va operatsiyalarning tugashini boshqaradi.
  • Farqli o'laroq UIDocumentPickerViewController-dan, bu API fayllarni tanlamaydi, mavjudlarini uzatadi.

UIDocumentInteractionController nima?

UIDocumentInteractionController — hujjatlar bilan ishlash uchun tizim interfeysini taqdim etuvchi UIKit sinfidir. UIDocumentPickerViewController fayllarni tanlagan holda, bu boshqaruvchi allaqachon mavjud ilova fayli bilan ishlaydi va foydalanuvchiga amallarni taklif qiladi: oldindan ko'rish, boshqa ilovada ochish, chop etish yoki yuborish.

Boshqaruvchi ViewController emas — present orqali chaqirilmaydi. Buning o'rniga, presentOptionsMenu yoki presentPreview metodi orqali tizim amallar menyusini ko'rsatadi. Menyu berilgan fayl turini qayta ishlash uchun ro'yxatdan o'tgan barcha ilovalarni ko'rsatadi.

UIDocumentInteractionController iOS 2.0 dan boshlab mavjud va hujjatlar bilan ishlash uchun eng qadimgi API-lardan biridir. Yoshiga qaramay, Open In funksiyasini va tashqi kutubxonalarsiz o'rnatilgan ko'rishni amalga oshirish uchun dolzarb bo'lib qolmoqda.

Preview rejimi: o'rnatilgan hujjat ko'ruvchi

Preview — UIDocumentInteractionController tomonidan taqdim etilgan o'rnatilgan hujjat ko'ruvchi. U PDF, rasmlar, matn fayllari va ofis hujjatlarini (.doc, .xls, .ppt o'z ichiga olgan holda) qo'llab-quvvatlaydi. Preview standart Quick Look-ga o'xshash o'tish animatsiyasi bilan ko'rsatiladi.

Preview-ni ishga tushirish uchun presentPreview metodini chaqiring. Boshqaruvchi hujjatni ko'rsatish uchun UIViewController qaytaradigan previewControllerForDocumentInteractionController metodining amalga oshirilishi bilan delegatni talab qiladi. Odatda self yoki navigatsiya boshqaruvchisi qaytariladi.

O'rnatilgan Preview qo'shimcha frameworklar yoki litsenziyalarni talab qilmaydi. URL-i url xususiyatiga uzatilgan har qanday fayl bilan ishlaydi. Foydalanuvchi PDF sahifalarini varaqlashi, rasmlarni masshtablashi va hujjatlardan matn nusxalashi mumkin.

Open In rejimi: ilovalar o'rtasida fayl uzatish

Open In — UIDocumentInteractionController-ning asosiy funksiyasi. Berilgan fayl turini ochishi mumkin bo'lgan ilovalar ro'yxatini ko'rsatadi. Foydalanuvchi maqsadli ilovani tanlaydi va iOS faylni uning sandbox-iga nusxalab, hujjat bilan ishlash uchun ilovani ishga tushiradi.

Ilovalar ro'yxati boshqa ilovalarning Info.plist da ro'yxatdan o'tgan Document Type asosida avtomatik shakllanadi. Agar ilova PDF qo'llab-quvvatlashni ro'yxatdan o'tkazgan bo'lsa, PDF fayllari uchun Open In menyusida paydo bo'ladi. Tizim, shuningdek, standart amallarni ko'rsatadi: chop etish, pochta orqali yuborish, Fayllarda saqlash.

Open In faylni nusxalaydi — maqsadli ilova o'z nusxasini oladi, shuning uchun o'zgarishlar asl ilovaga qaytmaydi. Agar saqlash bilan tahrirlash talab etilsa, security-scoped URL bilan export rejimida UIDocumentPickerViewController-dan foydalaning.

UIActivityViewController-ni alternativa sifatida sozlash

iOS 6 dan boshlab UIActivityViewController mavjud bo'lib, u ham fayl yuborishni qo'llab-quvvatlaydi. UIDocumentInteractionController-dan farqli o'laroq, UIActivityViewController AirDrop, pochta, xabarlar va maxsus UIActivity qo'llab-quvvatlashi bilan tizim amallar varag'ini ko'rsatadi. Oddiy fayl yuborish uchun UIActivityViewController zamonaviyroq API sifatida tavsiya etiladi.

Kod namunasi: Swift-da Open In

Open In ni UIDocumentInteractionController orqali amalga oshirish bir necha qator kodni talab qiladi: namunani yaratish, URL va delegatni o'rnatish, presentOptionsMenu chaqirish. Boshqaruvchi fayl turiga asoslanib mavjud ilovalar ro'yxatini avtomatik to'playdi.

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

Menyu o'rniga Preview-ni ishga tushirish

Open In menyusi o'rniga o'rnatilgan ko'ruvchini ko'rsatish uchun presentPreview metodidan foydalaning. Boshqaruvchi hujjatni varaqlash imkoniyati bilan to'liq ekranda ko'rsatadi. Delegat ko'rsatish uchun UIViewController qaytaradigan previewControllerForDocumentInteractionController metodini amalga oshirishi kerak.

UIDocumentInteractionControllerDelegate va hayot sikli

UIDocumentInteractionControllerDelegate menyu va Preview-ni ko'rsatish va yashirishni boshqaradi. Delegat ixtiyoriy metodlarni amalga oshirishi mumkin: paydo bo'lish animatsiyasi uchun documentInteractionControllerWillPresentOpenInMenu, menyu yopilgandan keyin resurslarni tozalash uchun documentInteractionControllerDidDismissOpenInMenu.

Preview uchun muhim metod — previewControllerForDocumentInteractionController, hujjatni ko'rsatish uchun UIViewController qaytarishi kerak. Agar metod amalga oshirilmagan bo'lsa yoki nil qaytarsa, Preview ishga tushmaydi. Odatda self yoki self ni o'z ichiga olgan UINavigationController qaytariladi.

Boshqaruvchi, shuningdek, fayl boshqa ilovaga muvaffaqiyatli uzatilgandan keyin chaqiriladigan documentInteractionController:didEndSendingToApplication metodini qo'llab-quvvatlaydi. Bu vaqtinchalik faylni tozalash yoki ilovaga qaytgandan keyin interfeysni yangilash imkonini beradi.

UIDocumentPickerViewController-dan farqlar

UIDocumentInteractionController va UIDocumentPickerViewController turli vazifalarni hal qiladi, garchi ikkalasi ham hujjatlar bilan ishlaydi. Asosiy farq: UIDocumentInteractionController mavjud faylni boshqa ilovaga uzatadi, UIDocumentPickerViewController esa joriy ilova uchun tashqi manbadan fayl tanlaydi.

ParametrUIDocumentInteractionControllerUIDocumentPickerViewController
MaqsadFaylni boshqa ilovaga yuborishBoshqa manbadan fayl tanlash
ManbaIlovaning o'z fayliHar qanday saqlash (iCloud, Fayllar, uchinchi tomon)
RejimFayl nusxasini qabul qiluvchiga yuborishJoriy ilova uchun Import yoki Export
InterfeysTizim menyusi (Action Sheet)To'liq fayl brauzeri
NatijaNatija qaytarmaydiDelegat orqali tanlangan fayl URL-i

UIDocumentInteractionController talab qilmaydi asosiy ish uchun delegat — menyu metodlar amalga oshirilmagan bo'lsa ham ko'rsatiladi. UIDocumentPickerViewController delegatsiz foydasiz — tanlov natijasi qayta ishlanmaydi. API tanlovi stsenariyga bog'liq: fayl yuborish → UIDocumentInteractionController, fayl qabul qilish → UIDocumentPickerViewController.

Tez-tez beriladigan savollar

iOS-da UIDocumentInteractionController nima?

UIDocumentInteractionController — Open In funksiyasi va o'rnatilgan Preview orqali hujjatlarni oldindan ko'rish va ilovalar o'rtasida fayl uzatish uchun UIKit boshqaruvchisi.

UIDocumentInteractionController orqali faylni boshqa ilovada qanday ochish mumkin?

Namuna yarating, url xususiyatini maqsadli faylga o'rnating, delegatni belgilang va presentOptionsMenu ni chaqiring. Tizim berilgan fayl turini qo'llab-quvvatlovchi ilovalar ro'yxatini ko'rsatadi.

Preview Quick Look-dan qanday farq qiladi?

UIDocumentInteractionController Preview — asosiy imkoniyatlar bilan bitta hujjat uchun o'rnatilgan ko'ruvchi. Quick Look (QLPreviewController) — ommaviy ko'rish, kengaytmalar va qo'shimcha fayl formatlarini qo'llab-quvvatlovchi alohida framework.

UIDocumentInteractionController uchun delegat amalga oshirish kerakmi?

Delegat asosiy ish uchun ixtiyoriy — menyu unsiz ham ko'rsatiladi. Delegat faqat Preview (previewControllerForDocumentInteractionController metodi) va fayl yuborish tugashini kuzatish uchun talab qilinadi.

UIDocumentInteractionController UIDocumentPickerViewController-dan qanday farq qiladi?

UIDocumentInteractionController ilovadan boshqa ilovaga mavjud faylni yuboradi. UIDocumentPickerViewController joriy ilovaga tashqi manbadan fayl tanlaydi. Birinchisi — yuborish uchun, ikkinchisi — qabul qilish uchun.

Xulosa

  • UIDocumentInteractionController — iOS 2.0 dan mavjud bo'lgan, ilovalar o'rtasida fayllarni ko'rish va yuborish uchun iOS boshqaruvchisi.
  • Preview tashqi kutubxonalarsiz PDF, rasm va ofis hujjatlarining o'rnatilgan ko'rishini ta'minlaydi.
  • Open In faylni tanlangan ilovaning sandbox-iga nusxalaydi — o'zgarishlar asl ilovaga qaytmaydi.
  • UIDocumentInteractionControllerDelegate delegat metodlari orqali animatsiyalar, menyu pozitsiyasi va yuborishning tugashini boshqaradi.
  • presentOptionsMenu berilgan fayl turi uchun mavjud ilovalar bilan tizim menyusini ko'rsatadi.
  • UIActivityViewController iOS 6 dan fayl yuborish uchun zamonaviyroq alternativadir.
  • Asosiy farq UIDocumentPickerViewController-dan: birinchisi faylni ilovadan yuboradi, ikkinchisi faylni ilovaga tanlaydi.

Biz kalit topshirig'i bilan mobil ilovani ishlab chiqamiz

IT Sectr 2017-yildan beri startaplar va korxonalar uchun iOS va Android ilovalarini yaratadi. Biz sizga maslahat beramiz va eng yaxshi yechimni taklif qilamiz.

Loyihani muhokama qilish

Shuningdek o'qing