UIDocumentPickerViewController — এটি কি, iOS ডকুমেন্ট নিয়ে কাজ

লেখক: IT Sectr প্রকাশিত: 2026-07-11 পড়ার সময়: 6 মিনিট

UIDocumentPickerViewController ফাইল সিস্টেম, iCloud Drive এবং তৃতীয় পক্ষের ক্লাউড স্টোরেজ থেকে ডকুমেন্ট নির্বাচনের জন্য একটি iOS সিস্টেম কন্ট্রোলার। কন্ট্রোলারটি যে কোনো ধরনের ফাইল খোলার এবং আমদানির জন্য একটি ইউনিফাইড ইন্টারফেস প্রদান করে: ছবি, PDF, টেক্সট এবং অডিও। Apple ডিভেলপার ডকুমেন্টেশন (2025) অনুযায়ী, UIDocumentPickerViewController import এবং export মোড সমর্থন করে এবং নির্বাচিত ফাইলগুলিকে একটি ডিলিগেটের মাধ্যমে URL রিফারেন্স হিসাবে ফিরিয়ে দেয়।

মূখ্য বিষয়

  • UIDocumentPickerViewController iOS এ যে কোনো উৎস থেকে ফাইল নির্বাচনের জন্য একটি সিস্টেম ডকুমেন্ট পিকার।
  • Import mode অ্যাপ স্যান্ডবক্সে ফাইল কপি করে, export mode পড়ার জন্য URL প্রদান করে।
  • UTI ফিল্টার প্রদর্শিত ডকুমেন্টের ধরন সীমিত করে: PDF, ছবি, টেক্সট এবং অন্যান্য।
  • UIDocumentPickerDelegate নির্বাচন ফলাফল এবং ফাইল অ্যাক্সেস ত্রুটি হ্যান্ডল করে।
  • Multiple selection একাধিক ফাইল নির্বাচনের জন্য allowsMultipleSelection ফ্ল্যাগের মাধ্যমে সমর্থিত।

UIDocumentPickerViewController কি?

UIDocumentPickerViewController একটি UIKit কন্ট্রোলার যা ডকুমেন্ট নির্বাচনের জন্য একটি সিস্টেম ইন্টারফেস প্রদান করে। এটি UIKit ফ্রেমওয়ার্কের অংশ এবং iOS 8 থেকে উপলব্ধ। কন্ট্রোলারটি একটি ফাইল ব্রাউজার প্রদর্শন করে যাতে স্থানীয় স্টোরেজ, iCloud Drive এবং নিবন্ধিত তৃতীয় পক্ষের ক্লাউড সেবা অন্তর্ভুক্ত।

কন্ট্রোলারটি অসিংক্রোনাসভাবে কাজ করে: present কল করার পর, ব্যবহারকারী একটি সিস্টেম ডায়ালগ দেখে, একটি ফাইল নির্বাচন করে, এবং ফলাফল ডিলিগেটের মাধ্যমে ফিরিয়ে আসে। নির্বাচিত ফাইলটি অ্যাক্সেস করতে অ্যাপটির কোনো বিশেষ অনুমতির প্রয়োজন নেই — সিস্টেম পিকার স্বচালিতভাবে URI এ অস্থায়ী অ্যাক্সেস প্রদান করে।

UIDocumentPickerViewController UIPopoverPresentationController এর মাধ্যমে iPad এবং iPhone এর জন্য একটি অডাপ্টিভ ইন্টারফেস সমর্থন করে। iOS 14 থেকে, কন্ট্রোলারটি একটি আপডেটেড ডিজাইন এবং iPadOS এ sidebar নেভিগেশন সমর্থন পেয়েছে।

কার্য পদ্ধতি: import এবং export

UIDocumentPickerViewController দুটি মূল মোডে কাজ করে, প্রত্যেকটি নির্ধারণ করে কিভাবে অ্যাপ ফাইলটি অ্যাক্সেস করে। কাজের উপর নির্ভর করে forOpeningContentTypes বা forExporting প্যারামিটারের মাধ্যমে মোড সেট করা হয়।

Import mode (forOpeningContentTypes) নির্বাচিত ফাইলটি অ্যাপ স্যান্ডবক্সে কপি করে। অ্যাপ ফাইলটির নিজস্ব কপির URL পায়, যা কেবলমাত্র এর কাছে অ্যাক্সেসযোগ্য। এটি একটি নিরাপদ মোড: অন্য অ্যাপের ফাইল পরিবর্তিত হয় না, এবং কপিটি সম্পূর্ণরূপে বর্তমান অ্যাপের নিয়ন্ত্রণে থাকে।

Export mode (forExporting) কপি ছাড়াই মূল ফাইলের URL প্রদান করে। অ্যাপ লিঙ্কের মাধ্যমে ফাইলটি পড়তে পারে, কিন্তু পরিবর্তন সংরক্ষিত হয় না। এই মোডটি ব্যবহৃত হয় যখন অন্য অ্যাপে একটি ফাইল স্থানান্তর করার বা ইমেইলে পাঠানোর প্রয়োজন হয়। পরিবর্তন লেখার জন্য, scoped security-scoped URL এর সাথে open মোড ব্যবহৃত হয়।

পিকার সেটআপ এবং UTI ফিল্টারিং

UTI (Uniform Type Identifier) Apple ইকোসিস্টেমে কন্টেন্ট ধরন শনাক্তিকরণ ব্যবস্থা। UIDocumentPickerViewController forOpeningContentTypes এর মাধ্যমে পাস করা UTI অ্যারে অনুযায়ী প্রদর্শিত ফাইলগুলি ফিল্টার করে। যদি কোনো UTI নির্দিষ্ট না করা হয়, তবে পিকার সব ফাইল ধরন দেখায়।

  • PDF — com.adobe.pdf. পিকার কেবল PDF ডকুমেন্ট দেখায়।
  • ছবি — public.image. JPEG, PNG, HEIC এবং অন্য ফরম্যাট অন্তর্ভুক্ত।
  • টেক্সট — public.plain-text. .txt, .csv এবং অন্য টেক্সট ফাইল দেখায়।
  • অডিও — public.audio. MP3, AAC, WAV এবং Lossless ফরম্যাট অন্তর্ভুক্ত।
  • ভিডিও — public.movie. MP4, MOV, AVI এবং অন্য ভিডিও ফরম্যাট দেখায়।

একাধিক ধরন নির্বাচনের জন্য, একটি অ্যারে [UTType.pdf, UTType.image] পাস করা হয়। iOS 14 থেকে, Apple স্ট্রিং কনস্ট্যান্টের পরিবর্তে UTType ব্যবহার সুপারিশ করে। নির্বাচিত প্রদাতা পরিবর্তনের সময় UIDocumentPickerViewController স্বচালিতভাবে প্রদর্শিত ধরনের তালিকা আপডেট করে।

Swift কোড উদাহরণ: ডকুমেন্ট নির্বাচন

বাস্তবায়ন Swift এ UIDocumentPickerViewController এর সর্বনিম্ন: UTI ধরন সহ একটি কন্ট্রোলার ইনস্টেন্স তৈরি করুন, ডিলিগেট সেট করুন এবং present কল করুন। ফাইল নির্বাচনের পর, ডিলিগেট didPickDocumentsAt মেথডে URLs এর একটি অ্যারে পায়। প্রতিটি URL একটি security-scoped রিফারেন্স যার জন্য startAccessingSecurityScopedResource কল করা আবশ্যক।

swift
let picker = UIDocumentPickerViewController(
    forOpeningContentTypes: [.pdf, .image],
    asCopy: true
)
picker.delegate = self
picker.allowsMultipleSelection = false
present(picker, animated: true)

// MARK: - UIDocumentPickerDelegate
func documentPicker(
    _ controller: UIDocumentPickerViewController,
    didPickDocumentsAt urls: [URL]
) {
    guard let url = urls.first else { return }
    url.startAccessingSecurityScopedResource()
    defer { url.stopAccessingSecurityScopedResource() }
    // url থেকে ফাইল পড়ুন
}

Security-Scoped সম্পদ

একটি security-scoped URL পড়ার আগে startAccessingSecurityScopedResource কল করা প্রয়োজন। এই মেথডটি সিস্টেকে জানায় যে অ্যাপ স্যান্ডবক্সের বাইরে একটি ফাইলে অস্থায়ী অ্যাক্সেস পাচ্ছে। শেষ হলে, সবসময় stopAccessingSecurityScopedResource কল করুন, অন্যথা সিস্টেম অ্যাক্সেস ব্লক করতে পারে।

UIDocumentPickerDelegate এবং ফলাফল হ্যান্ডলিং

UIDocumentPickerDelegate দুটি মেথডের মাধ্যমে ফাইল নির্বাচন ফলাফল পায়: সফলতায় didPickDocumentsAt এবং বাতিলে didPickDocumentsAt। ব্যবহারকারী নির্বাচন ছাড়াই পিকার বন্ধ করলে iOS স্বচালিতভাবে বাতিল মেথড কল করে।

ত্রুটি হ্যান্ডলিং এর মধ্যে URL উপলব্ধতা যাচাই অন্তর্ভুক্ত। যদি ব্যবহারকারী iCloud Drive থেকে একটি ফাইল নির্বাচন করে কিন্তু ডিভাইস অফলাইন থাকে, তবে URL অনুপলব্ধ হতে পারে। পড়ার আগে FileManager.default.isReadableFile যাচাই করা এবং ব্যবহারকারীকে একটি পরিষ্কার ত্রুটি বার্তা দেখানো সুপারিশ করা হয়।

iOS 14+ এর জন্য, URLs এর একটি অ্যারে সহ একটি নতুন মেথড documentPicker:didPickDocumentsAt উপলব্ধ। পুরানো মেথড didPickDocumentAt (একক) অপচারিত। সবসময় অ্যারেটি হ্যান্ডল করুন, যদিও allowsMultipleSelection অক্ষম থাকে — Apple একটি হ্যান্ডলার ব্যবহার সুপারিশ করে।

iPad এ UIDocumentPickerViewController

iPad এর UIDocumentPickerViewController এর বিশেষ কনফিগারেশন প্রয়োজন। iPad এ, পিকারটি একটি popover হিসাবে প্রদর্শিত হয় এবং সঠিক অবস্থানের জন্য sourceView নির্দিষ্ট করা আবশ্যক। sourceView ছাড়া, কন্ট্রোলারটি iPadOS এ এক্সেপশন সহ ক্র্যাশ করতে পারে।

popover এর জন্য, popoverPresentationController বৈশিষ্ট্যটি ব্যবহৃত হয়। একটি বাতাম বা টেবিল সেলে এংকর করতে sourceView এবং sourceRect নির্দিষ্ট করুন। iPhone এ এই কোডের কোনো প্রভাব নেই — iOS স্বচালিতভাবে পিকারটি পূর্ণ স্ক্রিনে দেখায়। iPadOS 16 থেকে, কন্ট্রোলারটি উন্নত নেভিগেশনের জন্য sidebar এবং split view সমর্থন করে।

UIDocumentPickerViewController এর অডাপ্টিভ ডিজাইন স্বচালিতভাবে পূর্ণ স্ক্রিন (iPhone) এবং popover (iPad) এর মধ্যে স্যংক্রমণ করে। বিকাশকারীকে বিভিন্ন ডিভাইসের জন্য পৃথক কন্ট্রোলার বাস্তবায়ন করতে হবে না — iPad এর জন্য popoverPresentationController সঠিকভাবে কনফিগার করা যথেষ্ট।

সামান্য প্রশ্ন

iOS এ UIDocumentPickerViewController কি?

UIDocumentPickerViewController iCloud Drive, স্থানীয় স্টোরেজ এবং তৃতীয় পক্ষের ক্লাউড সেবা থেকে ডকুমেন্ট নির্বাচনের জন্য একটি সিস্টেম UIKit কন্ট্রোলার। কন্ট্রোলারটি ডিলিগেটের মাধ্যমে নির্বাচিত ফাইলের URL ফিরিয়ে দেয়।

কিভাবে UIDocumentPickerViewController এর মাধ্যমে PDF নির্বাচন করবেন?

forOpeningContentTypes: [.pdf] সহ একটি কন্ট্রোলার তৈরি করুন। এটি প্রদর্শন কেবল PDF ফাইলে সীমিত করবে। ডিলিগেট সেট করুন এবং সিস্টেম পিকার দেখাতে present কল করুন।

import mode এবং export mode এর মধ্যে পার্থক্য কি?

Import mode অ্যাপ স্যান্ডবক্সে ফাইল কপি করে — পরিবর্তন মূলকে প্রভাবিত করে না। Export mode কপি ছাড়াই কেবল পড়ার জন্য মূল ফাইলের URL প্রদান করে।

iOS এ security-scoped URL কি?

Security-scoped URL অ্যাপ স্যান্ডবক্সের বাইরে একটি ফাইলের রিফারেন্স। পড়ার আগে startAccessingSecurityScopedResource এবং শেষ হলে stopAccessingSecurityScopedResource কল করুন।

কিভাবে iPad এর জন্য UIDocumentPickerViewController কনফিগার করবেন?

sourceView এবং sourceRect সহ popoverPresentationController কনফিগার করুন। এটি ছাড়া, কন্ট্রোলারটি iPad এ এক্সেপশন দিতে পারে। iPhone এ, popover সেটিংগুলি উপেক্ষা করা হয় — পিকারটি পূর্ণ স্ক্রিনে দেখায়।

সারাংশ

  • UIDocumentPickerViewController iOS এ ডকুমেন্ট নির্বাচনের জন্য একটি সিস্টেম কন্ট্রোলার, যা iOS 8 থেকে উপলব্ধ।
  • Import mode অ্যাপ স্যান্ডবক্সে ফাইল কপি করে; export mode মূলে কেবল পড়ার অ্যাক্সেস প্রদান করে।
  • UTI ফিল্টারিং ফাইল ধরন সীমিত করে: PDF, ছবি, টেক্সট, অডিও, ভিডিও এবং অন্যান্য।
  • UIDocumentPickerDelegate URLs এর অ্যারে সহ didPickDocumentsAt মেথডে নির্বাচন ফলাফল হ্যান্ডল করে।
  • Security-scoped URL ফাইল পড়ার আগে startAccessingSecurityScopedResource কল করা প্রয়োজন।
  • iPad কনফিগারেশন এর মধ্যে সঠিক প্রদর্শনের জন্য sourceView সহ popoverPresentationController সেট করা অন্তর্ভুক্ত।
  • iOS 14+ একটি আপডেটেড ডিজাইন, sidebar এবং স্ট্রিং UTI এর পরিবর্তে UTType সমর্থন যোগ করেছে।

আমরা একটি মোবাইল অ্যাপ্লিকেশন টার্নকি তৈরি করব

IT Sectr 2017 সাল থেকে স্টার্টআপ এবং ব্যবসার জন্য iOS এবং Android অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।

প্রকল্প নিয়ে আলোচনা করুন

আরও পড়ুন