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 — 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 — 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 — 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.
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.
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.
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
)
}
}
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 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.
UIDocumentInteractionController və UIDocumentPickerViewController 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.
| Parametr | UIDocumentInteractionController | UIDocumentPickerViewController |
|---|---|---|
| Məqsəd | Faylı başqa proqrama göndərmək | Baş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) |
| Rejim | Faylın surətini alıcıya göndərmək | Cari proqram üçün Import və ya Export |
| İnterfeys | Sistem menyusu (Action Sheet) | Tam hüquqlu fayl brauzeri |
| Nəticə | Nəticə qaytarmır | Delegat 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
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.
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.
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.
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 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ə
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.
Həm də oxuyun