UIDocumentInteractionController — Open In ve Belgeler

Yazar: IT Sectr Yayınlanma: 2026-07-11 Okuma süresi: 6 dk

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 — diğer uygulamalara belge görüntülemek ve göndermek için bir iOS denetleyicisi.
  • Preview — uygulama değiştirmeden PDF'ler, resimler ve ofis belgeleri için yerleşik görüntüleyici.
  • Open In — düzenleme veya görüntüleme için dosyayı başka bir uygulamaya aktarma işlevi.
  • UIDocumentInteractionControllerDelegate animasyonları, menü konumunu ve işlem tamamlanmasını yönetir.
  • UIDocumentPickerViewController'ın aksine, bu API dosyaları seçmez, mevcut dosyaları aktarır.

UIDocumentInteractionController Nedir?

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 Modu: Yerleşik Belge Görüntüleyici

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 Modu: Uygulamalar Arası Dosya Aktarımı

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.

Alternatif Olarak UIActivityViewController

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.

Kod Örneği: Swift'te Open In

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.

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

Menü Yerine Preview Başlatma

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 ve Yaşam Döngüsü

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.

UIDocumentPickerViewController'dan Farklar

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.

ParametreUIDocumentInteractionControllerUIDocumentPickerViewController
AmaçDosyayı başka bir uygulamaya göndermeBaşka bir kaynaktan dosya seçme
KaynakUygulamanın kendi dosyasıHerhangi bir depolama (iCloud, Dosyalar, üçüncü taraf)
ModAlıcıya dosyanın kopyasıGeçerli uygulama için İçe veya Dışa Aktarma
ArayüzSistem menüsü (Action Sheet)Tam dosya tarayıcısı
DönüşSonuç döndürmezTemsilci 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

iOS'ta UIDocumentInteractionController nedir?

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.

UIDocumentInteractionController kullanarak başka bir uygulamada dosya nasıl açılır?

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.

Preview ile Quick Look arasındaki fark nedir?

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.

UIDocumentInteractionController için bir temsilci uygulamam gerekir mi?

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 ile UIDocumentPickerViewController arasındaki fark nedir?

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

  • UIDocumentInteractionController — iOS 2.0'dan itibaren kullanılabilen, uygulamalar arasında dosya görüntüleme ve gönderme için bir iOS denetleyicisi.
  • Preview, üçüncü taraf kitaplıklar olmadan PDF'ler, resimler ve ofis belgeleri için yerleşik bir görüntüleyici sağlar.
  • Open In, seçilen uygulamanın sandbox'ına dosyayı kopyalar — değişiklikler orijinal uygulamaya geri dönmez.
  • UIDocumentInteractionControllerDelegate, temsilci yöntemleri aracılığıyla animasyonları, menü konumunu ve gönderme tamamlanmasını yönetir.
  • presentOptionsMenu, belirtilen dosya türü için kullanılabilir uygulamalarla bir sistem menüsü görüntüler.
  • UIActivityViewController, iOS 6'dan itibaren dosya paylaşımı için daha modern bir alternatiftir.
  • UIDocumentPickerViewController'dan temel fark: ilki uygulamadan dosya gönderir, ikincisi uygulamaya dosya seçer.

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.

Projeyi tartış

Ayrıca okuyun