UIDocumentInteractionController, belgeleri önizlemek ve uygulamalar arasında dosya paylaşmak için kullanılan bir iOS denetleyicisidir. Open In özelliğini uygulayarak kullanıcının herhangi bir uyumlu uygulamada dosyayı açmasına, e-posta ile göndermesine veya buluta kaydetmesine olanak tanır. Apple Developer Documentation'a (2025) göre denetleyici, PDF'leri, resimleri ve ofis belgelerini görüntülemek için yerleşik Önizleme'yi de destekler.
Önemli Noktalar
UIDocumentInteractionController, belgelerle çalışmak için bir sistem arayüzü sağlayan bir UIKit sınıfıdır. Dosyaları seçen UIDocumentPickerViewController'ın aksine, bu denetleyici uygulamanın mevcut bir dosyasıyla çalışır ve kullanıcıya şu eylemleri sunar: önizleme, başka bir uygulamada açma, yazdırma veya gönderme.
Denetleyici bir ViewController değildir — present aracılığıyla çağrılmaz. Bunun yerine, presentOptionsMenu veya presentPreview yöntemi aracılığıyla bir sistem eylem menüsü görüntüler. Menü, belirtilen dosya türünü işlemek için kayıtlı tüm uygulamaları gösterir.
UIDocumentInteractionController, iOS 2.0 itibarıyla kullanılabilir ve belgelerle çalışmak için en eski API'lerden biridir. Yaşına rağmen, üçüncü taraf kitaplıklar olmadan Open In özelliğini ve yerleşik önizlemeyi uygulamak için hala geçerlidir.
Preview, UIDocumentInteractionController tarafından sağlanan yerleşik bir belge görüntüleyicidir. PDF'leri, resimleri, metin dosyalarını ve ofis belgelerini (.doc, .xls, .ppt dahil) destekler. Önizleme, standart Quick Look'a benzer bir geçiş animasyonuyla görüntülenir.
Önizlemeyi başlatmak için presentPreview yöntemini çağırın. Denetleyici, belgeyi görüntülemek için bir UIViewController döndüren previewControllerForDocumentInteractionController yöntemini uygulayan bir temsilci gerektirir. Genellikle self veya bir gezinme denetleyicisi döndürülür.
Yerleşik Önizleme ek framework veya lisans gerektirmez. URL'si url özelliğine iletilen herhangi bir dosyayla çalışır. Kullanıcılar PDF sayfalarında gezinebilir, resimleri yakınlaştırabilir ve belgelerden metin kopyalayabilir.
Open In, UIDocumentInteractionController'ın temel özelliğidir. Belirtilen dosya türünü açabilen uygulamaların bir listesini görüntüler. Kullanıcı bir hedef uygulama seçer ve iOS dosyayı onun sandbox'ına kopyalayarak belgeyle çalışmak için uygulamayı başlatır.
Uygulama listesi, diğer uygulamaların Info.plist dosyalarında kayıtlı Document Type girişlerine göre otomatik olarak oluşturulur. Bir uygulama PDF desteği kaydettiyse, PDF dosyaları için Open In menüsünde görünür. Sistem ayrıca standart eylemleri de gösterir: yazdırma, e-posta ile gönderme, Dosyalar'a kaydetme.
Open In dosyayı kopyalar — hedef uygulama kendi kopyasını alır, bu nedenle değişiklikler orijinal uygulamaya kaydedilmez. Kaydetmeyle birlikte düzenleme gerekiyorsa, güvenlik kapsamlı bir URL ile dışa aktarma modunda UIDocumentPickerViewController kullanın.
iOS 6'dan itibaren, dosya paylaşımını da destekleyen UIActivityViewController kullanılabilir. UIDocumentInteractionController'dan farklı olarak UIActivityViewController, AirDrop, e-posta, mesajlar ve özel UIActivity desteğiyle bir sistem etkinlik sayfası gösterir. Basit dosya paylaşımı için daha modern bir API olarak UIActivityViewController önerilir.
UIDocumentInteractionController aracılığıyla Open In uygulaması yalnızca birkaç satır kod gerektirir: bir örnek oluşturun, URL ve temsilciyi ayarlayın, presentOptionsMenu'yu çağırın. Denetleyici, dosya türüne göre kullanılabilir uygulamaların listesini otomatik olarak toplar.
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 menüsü yerine yerleşik görüntüleyiciyi görüntülemek için presentPreview yöntemini kullanın. Denetleyici, kaydırma özelliğiyle belgeyi tam ekranda gösterecektir. Temsilci, görüntüleme için bir UIViewController döndüren previewControllerForDocumentInteractionController yöntemini uygulamalıdır.
UIDocumentInteractionControllerDelegate, menü ve Önizleme'nin görüntülenmesini ve kapatılmasını yönetir. Temsilci isteğe bağlı yöntemleri uygular: görünüm animasyonu için documentInteractionControllerWillPresentOpenInMenu, menü kapatıldıktan sonra kaynak temizliği için documentInteractionControllerDidDismissOpenInMenu.
Önizleme için önemli bir yöntem previewControllerForDocumentInteractionController'dır ve belgeyi görüntülemek için bir UIViewController döndürmelidir. Yöntem uygulanmazsa veya nil döndürürse Önizleme başlatılmaz. Genellikle self veya self içeren bir UINavigationController döndürülür.
Denetleyici ayrıca, dosya başka bir uygulamaya başarıyla gönderildikten sonra çağrılan documentInteractionController:didEndSendingToApplication yöntemini de destekler. Bu, geçici dosyaların temizlenmesine veya uygulamaya dönüldükten sonra arayüzün güncellenmesine olanak tanır.
UIDocumentInteractionController ve UIDocumentPickerViewController, her ikisi de belgelerle çalışmasına rağmen farklı görevleri çözer. Temel fark: UIDocumentInteractionController mevcut bir dosyayı başka bir uygulamaya aktarırken, UIDocumentPickerViewController geçerli uygulama için harici bir kaynaktan dosya seçer.
| Parametre | UIDocumentInteractionController | UIDocumentPickerViewController |
|---|---|---|
| Amaç | Dosyayı başka bir uygulamaya gönderme | Başka bir kaynaktan dosya seçme |
| Kaynak | Uygulamanın kendi dosyası | Herhangi bir depolama (iCloud, Dosyalar, üçüncü taraf) |
| Mod | Alıcıya dosyanın kopyası | Geçerli uygulama için İçe veya Dışa Aktarma |
| Arayüz | Sistem menüsü (Action Sheet) | Tam dosya tarayıcısı |
| Dönüş | Sonuç döndürmez | Temsilci aracılığıyla seçilen dosyanın URL'si |
UIDocumentInteractionController temel çalışma için bir temsilci gerektirmez — yöntemler uygulanmasa bile menü görüntülenir. Temsilci olmadan UIDocumentPickerViewController işe yaramaz — seçim sonucu işlenmez. API seçimi senaryoya bağlıdır: dosya gönderme → UIDocumentInteractionController, dosya alma → UIDocumentPickerViewController.
Sıkça Sorulan Sorular
UIDocumentInteractionController, Open In özelliği ve yerleşik Önizleme aracılığıyla belgeleri önizlemek ve uygulamalar arasında dosya aktarmak için bir UIKit denetleyicisidir.
Bir örnek oluşturun, hedef dosyaya url özelliğini ayarlayın, temsilciyi belirtin ve presentOptionsMenu öğesini çağırın. Sistem, belirtilen dosya türünü destekleyen uygulamaların bir listesini gösterecektir.
UIDocumentInteractionController Preview, temel özelliklere sahip tek bir belge için yerleşik bir görüntüleyicidir. Quick Look (QLPreviewController), toplu görüntüleme, uzantılar ve ek dosya biçimleri desteğiyle ayrı bir framework'tür.
Temsilci, temel çalışma için isteğe bağlıdır — menü temsilci olmadan da görüntülenir. Temsilci yalnızca Önizleme (previewControllerForDocumentInteractionController yöntemi) ve dosya gönderme tamamlanmasını izlemek için zorunludur.
UIDocumentInteractionController, uygulamadan başka bir uygulamaya mevcut bir dosyayı gönderir. UIDocumentPickerViewController, harici bir kaynaktan geçerli uygulamaya bir dosya seçer. Birincisi göndermek, ikincisi almak içindir.
Özet
Anahtar teslim bir mobil uygulama geliştireceğiz
IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.
Ayrıca okuyun