UIDocumentInteractionController — bu nədir, Open In və sənədlər

Müəllif: IT Sectr Dərc olunub: 2026-07-11 Oxuma vaxtı: 6 dəq

UIDocumentInteractionController — iOS-da sənədlərə baxmaq və proqramlar arasında faylları paylaşmaq üçün nəzarətçidir. O, Open In funksiyasını həyata keçirərək istifadəçiyə faylı uyğun istənilən proqramda açmağa, e-poçtla göndərməyə və ya bulud yaddaşında saxlamağa imkan verir. Apple Developer Documentation (2025) məlumatına görə, nəzarətçi həmçinin PDF, şəkillər və ofis sənədlərinə baxmaq üçün daxili Preview-i dəstəkləyir.

Əsas məqamlar

  • UIDocumentInteractionController — iOS-da sənədlərə baxmaq və digər proqramlara göndərmək üçün nəzarətçi.
  • Preview — proqramı dəyişmədən PDF, şəkil və ofis sənədlərinə baxmaq üçün daxili baxış vasitəsi.
  • Open In — faylı redaktə və ya baxış üçün başqa proqrama ötürmə funksiyası.
  • UIDocumentInteractionControllerDelegate animasiyaları, menyu mövqeyini və əməliyyatların tamamlanmasını idarə edir.
  • Fərqli olaraq UIDocumentPickerViewController-dən, bu API faylları seçmir, mövcud olanları ötürür.

UIDocumentInteractionController nədir?

UIDocumentInteractionController — sənədlərlə işləmək üçün sistem interfeysi təmin edən UIKit sinifidir. UIDocumentPickerViewController faylları seçdiyi halda, bu nəzarətçi artıq mövcud olan proqram faylı ilə işləyir və istifadəçiyə əməliyyatlar təklif edir: baxış, başqa proqramda açma, çap etmə və ya göndərmə.

Nəzarətçi ViewController deyil — present vasitəsilə çağırılmır. Bunun əvəzinə presentOptionsMenu və ya presentPreview metodu vasitəsilə sistem əməliyyat menyusunu göstərir. Menyu verilmiş fayl növünü dəstəkləmək üçün qeydiyyatdan keçmiş bütün proqramları göstərir.

UIDocumentInteractionController iOS 2.0 versiyasından etibarən mövcuddur və sənədlərlə işləmək üçün ən qədim API-lərdən biridir. Yaşına baxmayaraq, Open In funksiyasını və xarici kitabxanalar olmadan daxili baxışı tətbiq etmək üçün aktual olaraq qalır.

Preview rejimi: daxili sənəd baxışı

Preview — UIDocumentInteractionController tərəfindən təmin edilən daxili sənəd baxış vasitəsidir. O, PDF, şəkillər, mətn faylları və ofis sənədlərini (.doc, .xls, .ppt daxil olmaqla) dəstəkləyir. Preview standart Quick Look-a bənzər keçid animasiyası ilə göstərilir.

Preview-i işə salmaq üçün presentPreview metodunu çağırın. Nəzarətçi sənədi göstərmək üçün UIViewController qaytaran previewControllerForDocumentInteractionController metodunun tətbiqi ilə delegat tələb edir. Adətən self və ya naviqasiya nəzarətçisi qaytarılır.

Daxili Preview əlavə freymvorklar və ya lisenziyalar tələb etmir. URL-i url xassəsinə ötürülmüş istənilən faylla işləyir. İstifadəçi PDF səhifələrini çevirə, şəkilləri miqyaslaya və sənədlərdən mətn kopyalaya bilər.

Open In rejimi: proqramlar arasında fayl ötürülməsi

Open In — UIDocumentInteractionController-ün əsas funksiyasıdır. Verilmiş fayl növünü aça bilən proqramların siyahısını göstərir. İstifadəçi hədəf proqramı seçir və iOS faylı onun sandbox-a kopyalayaraq sənədlə işləmək üçün proqramı işə salır.

Proqramların siyahısı digər proqramların Info.plist faylında qeydiyyatdan keçmiş Document Type əsasında avtomatik formalaşır. Əgər proqram PDF dəstəyini qeydiyyatdan keçiribsə, PDF faylları üçün Open In menyusunda görünəcək. Sistem həmçinin standart əməliyyatları göstərir: çap, e-poçtla göndərmə, Fayllarda saxlama.

Open In faylı kopyalayır — hədəf proqram öz nüsxəsini alır, buna görə dəyişikliklər orijinal proqrama geri qayıtmır. Əgər saxlama ilə redaktə tələb olunursa, security-scoped URL ilə export rejimində UIDocumentPickerViewController istifadə edin.

Alternativ olaraq UIActivityViewController-ün konfiqurasiyası

iOS 6-dan etibarən UIActivityViewController mövcuddur, o da fayl göndərməyi dəstəkləyir. UIDocumentInteractionController-dən fərqli olaraq, UIActivityViewController AirDrop, poçt, mesajlar və xüsusi UIActivity dəstəyi ilə sistem əməliyyat cədvəlini göstərir. Sadə fayl göndərmə üçün daha müasir API kimi UIActivityViewController tövsiyə olunur.

Kod nümunəsi: Swift-də Open In

Open In-in UIDocumentInteractionController vasitəsilə tətbiqi cəmi bir neçə sətir kod tələb edir: nümunə yaratmaq, URL və delegat təyin etmək, presentOptionsMenu çağırmaq. Nəzarətçi fayl növünə əsasən mövcud proqramların siyahısını avtomatik toplayır.

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 əvəzinə Preview-in işə salınması

Open In menyusu əvəzinə daxili baxışı göstərmək üçün presentPreview metodundan istifadə edin. Nəzarətçi sənədi çevirmə imkanı ilə tam ekranda göstərəcək. Delegat göstərmək üçün UIViewController qaytaran previewControllerForDocumentInteractionController metodunu tətbiq etməlidir.

UIDocumentInteractionControllerDelegate və həyat dövrü

UIDocumentInteractionControllerDelegate menyu və Preview-in göstərilməsi və gizlədilməsini idarə edir. Delegat isteğe bağlı metodları tətbiq edir: görünmə animasiyası üçün documentInteractionControllerWillPresentOpenInMenu, menyu bağlandıqdan sonra resursların təmizlənməsi üçün documentInteractionControllerDidDismissOpenInMenu.

Preview üçün vacib metod — previewControllerForDocumentInteractionController, sənədi göstərmək üçün UIViewController qaytarmalıdır. Metod tətbiq olunmayıbsa və ya nil qaytarırsa, Preview işə düşməyəcək. Adətən self və ya self ehtiva edən UINavigationController qaytarılır.

Nəzarətçi həmçinin faylın digər proqrama uğurla ötürülməsindən sonra çağırılan documentInteractionController:didEndSendingToApplication metodunu dəstəkləyir. Bu, müvəqqəti faylı təmizləməyə və ya proqrama qayıtdıqdan sonra interfeysi yeniləməyə imkan verir.

UIDocumentPickerViewController-dən fərqlər

UIDocumentInteractionControllerUIDocumentPickerViewController müxtəlif vəzifələri həll edir, baxmayaraq ki, hər ikisi sənədlərlə işləyir. Əsas fərq: UIDocumentInteractionController mövcud faylı başqa proqrama ötürür, UIDocumentPickerViewController isə cari proqram üçün xarici mənbədən fayl seçir.

ParametrUIDocumentInteractionControllerUIDocumentPickerViewController
MəqsədFaylı başqa proqrama göndərməkBaşqa mənbədən fayl seçmək
MənbəProqramın öz faylıİstənilən yaddaş (iCloud, Fayllar, üçüncü tərəf)
RejimFaylın surətini alıcıya göndərməkCari proqram üçün Import və ya Export
İnterfeysSistem menyusu (Action Sheet)Tam hüquqlu fayl brauzeri
NəticəNəticə qaytarmırDelegat vasitəsilə seçilmiş faylın URL-i

UIDocumentInteractionController tələb etmir əsas iş üçün delegat — menyu metodlar tətbiq olunmasa belə göstəriləcək. UIDocumentPickerViewController delegatsız faydasızdır — seçim nəticəsi işlənməyəcək. API seçimi ssenaridən asılıdır: fayl göndərmək → UIDocumentInteractionController, fayl qəbul etmək → UIDocumentPickerViewController.

Tez-tez verilən suallar

iOS-da UIDocumentInteractionController nədir?

UIDocumentInteractionController — Open In funksiyası və daxili Preview vasitəsilə sənədlərə baxmaq və proqramlar arasında fayl ötürmək üçün UIKit nəzarətçisidir.

UIDocumentInteractionController vasitəsilə faylı başqa proqramda necə açmaq olar?

Nümunə yaradın, url xassəsini hədəf fayla təyin edin, delegatı göstərin və presentOptionsMenu çağırın. Sistem verilmiş fayl növünü dəstəkləyən proqramların siyahısını göstərəcək.

Preview Quick Look-dan nə ilə fərqlənir?

UIDocumentInteractionController Preview — əsas imkanlarla bir sənəd üçün daxili baxış vasitəsidir. Quick Look (QLPreviewController) — toplu baxış, genişləndirmələr və əlavə fayl formatları dəstəyi ilə ayrıca freymvorkdur.

UIDocumentInteractionController üçün delegat tətbiq etmək lazımdırmı?

Delegat əsas iş üçün isteğe bağlıdır — menyu onsuz da göstəriləcək. Delegat yalnız Preview (previewControllerForDocumentInteractionController metodu) və fayl göndərmənin tamamlanmasını izləmək üçün tələb olunur.

UIDocumentInteractionController UIDocumentPickerViewController-dən nə ilə fərqlənir?

UIDocumentInteractionController proqramdan başqa proqrama mövcud faylı göndərir. UIDocumentPickerViewController cari proqrama xarici mənbədən fayl seçir. Birincisi — göndərmək üçün, ikincisi — qəbul etmək üçün.

Xülasə

  • UIDocumentInteractionController — iOS 2.0-dan mövcud olan, proqramlar arasında fayllara baxmaq və göndərmək üçün iOS nəzarətçisi.
  • Preview xarici kitabxanalar olmadan PDF, şəkil və ofis sənədlərinin daxili baxışını təmin edir.
  • Open In faylı seçilmiş proqramın sandbox-na kopyalayır — dəyişikliklər orijinal proqrama qayıtmır.
  • UIDocumentInteractionControllerDelegate delegat metodları vasitəsilə animasiyaları, menyu mövqeyini və göndərmənin tamamlanmasını idarə edir.
  • presentOptionsMenu verilmiş fayl növü üçün mövcud proqramlarla sistem menyusunu göstərir.
  • UIActivityViewController iOS 6-dan fayl göndərmək üçün daha müasir alternativdir.
  • Əsas fərq UIDocumentPickerViewController-dən: birincisi faylı proqramdan göndərir, ikincisi faylı proqrama seçir.

Açar təslim mobil tətbiq hazırlayacağıq

IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.

Layihəni müzakirə et

Həm də oxuyun