আমার কাছে একটি আইফোন অ্যাপ্লিকেশন রয়েছে যা UINavigationController
একটি ড্রিল-ডাউন ইন্টারফেস উপস্থাপন করতে ব্যবহার করে: প্রথমে একটি দৃশ্য, তারপরে আরেকটি, চার স্তর পর্যন্ত গভীর। আমি প্রথম তিনটি দর্শন পোর্ট্রেট অভিমুখীকরণের মধ্যে সীমাবদ্ধ চাই এবং কেবলমাত্র শেষ দৃশ্যে ল্যান্ডস্কেপে ঘোরাতে দেওয়া উচিত। চতুর্থ দৃশ্য থেকে তৃতীয় এবং চতুর্থ দর্শন থেকে ফিরে যখন ল্যান্ডস্কেপ অভিযোজনে ছিল আমি চাই সমস্ত কিছুই প্রতিকৃতিতে ঘোরানো হোক।
আইওএস 5-এ আমি অনুমোদিত shouldAutorotateToInterfaceOrientation:
প্রতিটি দৃশ্যের জন্য হ্যাঁ ফিরিয়ে দেওয়ার জন্য আমার প্রতিটি দৃশ্যের নিয়ামককে কেবল সংজ্ঞায়িত করেছি। উপরের বর্ণনানুসারে সমস্ত কিছুই কাজ করেছিল, ভিউ কন্ট্রোলার # 4 থেকে # 3 এ ফিরে আসার পরেও ডিভাইসটি ল্যান্ডস্কেপ অভিযোজনে ধারণ করা থাকলেও প্রতিকৃতিতে ফিরে আসা সহ।
আইওএস 6-এ সমস্ত দর্শনীয় কন্ট্রোলার ল্যান্ডস্কেপে ঘোরান, যা বোঝায়নি সেগুলি ভেঙে। আইওএস release প্রকাশের নোট বলেছে
আরও দায়বদ্ধতা অ্যাপ্লিকেশন এবং অ্যাপ প্রতিনিধির দিকে চলেছে। এখন, আইওএস পাত্রে (যেমন
UINavigationController
) তাদের বাচ্চাদের অটোরিটেশন করা উচিত কিনা তা নির্ধারণের জন্য তাদের সাথে পরামর্শ করে না। [...] সিস্টেমটি তার সর্বোচ্চ সমর্থিত পূর্ণ-স্ক্রিন ভিউ কন্ট্রোলারকে (সাধারণত রুট ভিউ কন্ট্রোলার) তার সমর্থিত ইন্টারফেস ওরিয়েন্টেশনগুলির জন্য জিজ্ঞাসা করে যখনই ডিভাইসটি ঘোরানো হয় বা যখনই কোনও দৃশ্যের নিয়ামককে পূর্ণ-স্ক্রিন মডেল উপস্থাপনা শৈলীর সাথে উপস্থাপন করা হয়। তদতিরিক্ত, সমর্থিত ওরিয়েন্টেশনগুলি কেবল তখনই পুনরুদ্ধার করা হয় যদি এই দৃশ্যের নিয়ামকটি তারshouldAutorotate
পদ্ধতি থেকে YES ফেরত দেয় । [...] শীর্ষস্থানীয় পূর্ণ-স্ক্রীন নিয়ামকের পদ্ধতিতেsupportedInterfaceOrientationsForWindow:
ফিরে আসা মান দিয়ে অ্যাপ্লিকেশনটির পদ্ধতিতে ফেরত মানকে ছেদ করে একটি ওরিয়েন্টেশন সমর্থিত কিনা তা সিস্টেমটি নির্ধারণ করেsupportedInterfaceOrientations
।
সুতরাং আমি সাবক্লাস করেছি UINavigationController
, আমার MainNavigationController
বুলিয়ান সম্পত্তি দিয়েছি landscapeOK
এবং এটি অনুমোদিত অনুমতিগুলি ফিরিয়ে দিতে ব্যবহার করেছি supportedInterfaceOrientations
। তারপরে আমার প্রতিটি ভিউ কন্ট্রোলারের viewWillAppear:
পদ্ধতিতে আমার এর মতো লাইন থাকে
[(MainNavigationController*)[self navigationController] setLandscapeOK:YES];
আমার MainNavigationController
কাঙ্ক্ষিত আচরণ বলতে ।
এখানে প্রশ্নটি আসে: আমি যদি এখন পোর্ট্রেট মোডে আমার চতুর্থ দর্শনে নেভিগেট করি এবং ফোনটিকে তার উপরে ঘুরিয়ে দেব তবে ল্যান্ডস্কেপে ঘুরছি। এখন আমি আমার তৃতীয় দৃশ্যে ফিরে আসতে বোতাম টিপুন যা কেবল প্রতিকৃতিতে কাজ করার কথা। কিন্তু এটি পিছনে ঘুরবে না। আমি কীভাবে এটি করতে পারি?
আমি চেষ্টা করেছিলাম
[[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationPortrait]
মধ্যে viewWillAppear
আমার তৃতীয় দৃশ্য নিয়ামক পদ্ধতি, কিন্তু এটা কিছু না। এটি কল করার ভুল পদ্ধতি বা এটি কল করার জন্য ভুল জায়গা হতে পারে বা আমার পুরো জিনিসটি সম্পূর্ণ ভিন্ন উপায়ে বাস্তবায়ন করা উচিত?