UIDocumentInteractionController ایک iOS کنٹرولر ہے جو دستاویزات کا پیش منظر دیکھنے اور ایپس کے درمیان فائلیں شیئر کرنے کے لیے ہے۔ یہ Open In فیچر کو نافذ کرتا ہے، جس سے صارف کسی بھی مطابقت رکھنے والی ایپ میں فائل کھول سکتا ہے، ای میل کے ذریعے بھیج سکتا ہے یا کلاؤڈ اسٹوریج میں محفوظ کر سکتا ہے۔ Apple Developer Documentation (2025) کے مطابق، کنٹرولر PDF، تصاویر اور آفس دستاویزات دیکھنے کے لیے بلٹ ان Preview کو بھی سپورٹ کرتا ہے۔
اہم نکات
UIDocumentInteractionController ایک UIKit کلاس ہے جو دستاویزات کے ساتھ کام کرنے کے لیے سسٹم انٹرفیس فراہم کرتی ہے۔ UIDocumentPickerViewController کے برعکس جو فائلوں کو منتخب کرتا ہے، یہ کنٹرولر ایپ کی موجودہ فائل کے ساتھ کام کرتا ہے اور صارف کو اعمال فراہم کرتا ہے: پیش منظر، دوسری ایپ میں کھولنا، پرنٹ کرنا یا بھیجنا۔
کنٹرولر ViewController نہیں ہے — اسے present کے ذریعے نہیں بلایا جاتا۔ اس کے بجائے، یہ presentOptionsMenu یا presentPreview طریقہ کے ذریعے سسٹم ایکشن مینو دکھاتا ہے۔ مینو دی گئی فائل کی قسم کو ہینڈل کرنے کے لیے رجسٹرڈ تمام ایپس دکھاتا ہے۔
UIDocumentInteractionController iOS 2.0 سے دستیاب ہے اور دستاویزات کے ساتھ کام کرنے کے لیے قدیم ترین APIs میں سے ایک ہے۔ اپنی عمر کے باوجود، یہ تیسرے فریق کی لائبریریوں کے بغیر Open In فیچر اور بلٹ ان پیش منظر کو نافذ کرنے کے لیے متعلقہ ہے۔
Preview UIDocumentInteractionController کے ذریعہ فراہم کردہ ایک بلٹ ان دستاویز ویور ہے۔ یہ PDF، تصاویر، ٹیکسٹ فائلیں اور آفس دستاویزات (.doc، .xls، .ppt سمیت) کو سپورٹ کرتا ہے۔ Preview معیاری Quick Look جیسی ٹرانزیشن اینیمیشن کے ساتھ دکھایا جاتا ہے۔
Preview شروع کرنے کے لیے presentPreview طریقہ کو کال کریں۔ کنٹرولر کو ایک ڈیلیگیٹ کی ضرورت ہے جو previewControllerForDocumentInteractionController طریقہ کو نافذ کرے، جو دستاویز دکھانے کے لیے UIViewController لوٹاتا ہے۔ عام طور پر self یا نیویگیشن کنٹرولر لوٹایا جاتا ہے۔
بلٹ ان Preview اضافی فریم ورک یا لائسنس کی ضرورت نہیں ہے۔ یہ کسی بھی فائل کے ساتھ کام کرتا ہے جس کا URL url پراپرٹی کو دیا گیا ہے۔ صارفین PDF صفحات میں اسکرول کر سکتے ہیں، تصاویر کو زوم کر سکتے ہیں اور دستاویزات سے ٹیکسٹ کاپی کر سکتے ہیں۔
Open In UIDocumentInteractionController کی کلیدی خصوصیت ہے۔ یہ ان ایپس کی فہرست دکھاتا ہے جو دی گئی فائل کی قسم کھول سکتی ہیں۔ صارف ہدف ایپ منتخب کرتا ہے، اور iOS فائل کو اس کے سینڈ باکس میں کاپی کرتا ہے، دستاویز کے ساتھ کام کرنے کے لیے ایپ لانچ کرتا ہے۔
ایپ کی فہرست دیگر ایپس کے Info.plist میں رجسٹرڈ Document Type اندراجات کی بنیاد پر خود بخود تیار ہوتی ہے۔ اگر کسی ایپ نے PDF سپورٹ رجسٹر کیا ہے، تو یہ PDF فائلوں کے لیے Open In مینو میں ظاہر ہوگی۔ سسٹم معیاری اعمال بھی دکھاتا ہے: پرنٹ، ای میل کے ذریعے بھیجنا، فائلوں میں محفوظ کرنا۔
Open In فائل کاپی کرتا ہے — ہدف ایپ اپنی کاپی حاصل کرتی ہے، اس لیے تبدیلیاں اصل ایپ میں واپس محفوظ نہیں ہوتیں۔ اگر آپ کو محفوظ کرنے کے ساتھ ترمیم کی ضرورت ہے تو، سیکیورٹی اسکوپڈ URL کے ساتھ ایکسپورٹ موڈ میں UIDocumentPickerViewController استعمال کریں۔
iOS 6 سے، UIActivityViewController دستیاب ہے، جو فائل شیئرنگ کو بھی سپورٹ کرتا ہے۔ UIDocumentInteractionController کے برعکس، UIActivityViewController AirDrop، ای میل، پیغامات اور کسٹم UIActivity کے سپورٹ کے ساتھ سسٹم ایکٹیویٹی شیٹ دکھاتا ہے۔ سادہ فائل شیئرنگ کے لیے، UIActivityViewController کو زیادہ جدید API کے طور پر تجویز کیا جاتا ہے۔
UIDocumentInteractionController کے ذریعے Open In کا نفاذ صرف کوڈ کی چند سطریں چاہتا ہے: ایک مثال بنائیں، URL اور ڈیلیگیٹ سیٹ کریں، presentOptionsMenu کال کریں۔ کنٹرولر فائل کی قسم کی بنیاد پر خود بخود دستیاب ایپس کی فہرست جمع کرتا ہے۔
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 مینو کے بجائے بلٹ ان ویور دکھانے کے لیے presentPreview طریقہ استعمال کریں۔ کنٹرولر اسکرول کرنے کی صلاحیت کے ساتھ مکمل اسکرین میں دستاویز دکھائے گا۔ ڈیلیگیٹ کو previewControllerForDocumentInteractionController طریقہ نافذ کرنا چاہیے، جو دکھانے کے لیے UIViewController لوٹاتا ہے۔
UIDocumentInteractionControllerDelegate مینو اور Preview کے دکھانے اور چھپانے کا انتظام کرتا ہے۔ ڈیلیگیٹ اختیاری طریقے نافذ کرتا ہے: ظاہر ہونے کی اینیمیشن کے لیے documentInteractionControllerWillPresentOpenInMenu، مینو چھپنے کے بعد وسائل کی صفائی کے لیے documentInteractionControllerDidDismissOpenInMenu۔
Preview کے لیے ایک اہم طریقہ previewControllerForDocumentInteractionController ہے، جسے دستاویز دکھانے کے لیے UIViewController لوٹانا چاہیے۔ اگر طریقہ نافذ نہیں کیا گیا یا nil لوٹاتا ہے تو Preview شروع نہیں ہوگا۔ عام طور پر self یا self پر مشتمل UINavigationController لوٹایا جاتا ہے۔
کنٹرولر documentInteractionController:didEndSendingToApplication طریقہ کو بھی سپورٹ کرتا ہے، جو فائل کو کسی دوسری ایپ میں کامیابی سے بھیجنے کے بعد کال کیا جاتا ہے۔ یہ عارضی فائلوں کو صاف کرنے یا ایپ میں واپس آنے کے بعد انٹرفیس کو اپ ڈیٹ کرنے کی اجازت دیتا ہے۔
UIDocumentInteractionController اور UIDocumentPickerViewController مختلف کاموں کو حل کرتے ہیں، اگرچہ دونوں دستاویزات کے ساتھ کام کرتے ہیں۔ بنیادی فرق: UIDocumentInteractionController موجودہ فائل کو دوسری ایپ میں منتقل کرتا ہے، جبکہ UIDocumentPickerViewController موجودہ ایپ کے لیے بیرونی ذریعہ سے فائل منتخب کرتا ہے۔
| پیرامیٹر | UIDocumentInteractionController | UIDocumentPickerViewController |
|---|---|---|
| مقصد | فائل دوسری ایپ کو بھیجنا | دوسرے ذریعہ سے فائل منتخب کرنا |
| ذریعہ | ایپ کی اپنی فائل | کوئی بھی اسٹوریج (iCloud، فائلیں، تیسرا فریق) |
| موڈ | وصول کنندہ کو فائل کی کاپی | موجودہ ایپ کے لیے درآمد یا برآمد |
| انٹرفیس | سسٹم مینو (Action Sheet) | مکمل فائل براؤزر |
| واپسی | نتیجہ واپس نہیں کرتا | ڈیلیگیٹ کے ذریعے منتخب فائل کا URL |
UIDocumentInteractionController بنیادی آپریشن کے لیے ڈیلیگیٹ کی ضرورت نہیں ہے — مینو طریقوں کو نافذ کیے بغیر بھی دکھایا جائے گا۔ ڈیلیگیٹ کے بغیر UIDocumentPickerViewController بیکار ہے — انتخاب کا نتیجہ پروسیس نہیں کیا جائے گا۔ API کا انتخاب منظر نامے پر منحصر ہے: فائل بھیجنا → UIDocumentInteractionController، فائل وصول کرنا → UIDocumentPickerViewController۔
اکثر پوچھے گئے سوالات
UIDocumentInteractionController ایک UIKit کنٹرولر ہے جو Open In فیچر اور بلٹ ان Preview کے ذریعے دستاویزات کا پیش منظر دیکھنے اور ایپس کے درمیان فائلیں منتقل کرنے کے لیے ہے۔
ایک مثال بنائیں، ہدف فائل پر url پراپرٹی سیٹ کریں، ڈیلیگیٹ بتائیں اور presentOptionsMenu کال کریں۔ سسٹم دی گئی فائل کی قسم کو سپورٹ کرنے والی ایپس کی فہرست دکھائے گا۔
UIDocumentInteractionController Preview بنیادی صلاحیتوں کے ساتھ ایک دستاویز کے لیے بلٹ ان ویور ہے۔ Quick Look (QLPreviewController) بیچ ویونگ، ایکسٹینشنز اور اضافی فائل فارمیٹس کے سپورٹ کے ساتھ ایک علیحدہ فریم ورک ہے۔
ڈیلیگیٹ بنیادی آپریشن کے لیے اختیاری ہے — مینو اس کے بغیر بھی دکھایا جائے گا۔ ڈیلیگیٹ صرف Preview (previewControllerForDocumentInteractionController طریقہ) اور فائل بھیجنے کی تکمیل کو ٹریک کرنے کے لیے لازمی ہے۔
UIDocumentInteractionController ایپ سے کسی دوسری ایپ میں موجودہ فائل بھیجتا ہے۔ UIDocumentPickerViewController بیرونی ذریعہ سے موجودہ ایپ میں فائل منتخب کرتا ہے۔ پہلا بھیجنے کے لیے، دوسرا وصول کرنے کے لیے۔
خلاصہ
ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے
IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔
مزید پڑھیں