سؤال

لدي اثنين من UIViewControllers "أ" و "ب" ، حيث "" يتجاوز shouldAutorotateToInterfaceOrientation للعودة نعم UIInterfaceOrientationPortrait ، و "ب" إرجاع نعم لجميع التوجهات.في بلدي على سبيل المثال "أ" هو جذر الملاحة تحكم عرض ، ثم استخدام pushViewController ل "ب".بعد ذلك قم بتدوير الجهاز إلى المشهد الذي نجح autorotates "ب", ثم البوب "ب" (زر العودة أو عن طريق popViewController) إلى العودة إلى "A".

عندما تستهدف نظام التشغيل اي فون 3.1.3 ، "" يعود إلى اتجاه عمودي كما هو متوقع.عندما تستهدف نظام التشغيل اي فون 3.2 لدي اثنين من الآثار الجانبية:

  1. "أ" يتم عرضها في المناظر الطبيعية.
  2. شريط التنقل لا يتم تحديث على الرغم من "أ" يتم عرضها الآن.شريط التنقل لا يزال يظهر البنود "ب".بعد محاولة العودة/البوب واحد مزيد من الوقت سوف شريط التنقل تحريك إظهار البنود "أ".إذا كنت بدلا من ذلك محاولة دفع "ب" مرة أخرى نعود لدي البوب مرتين قبل شريط التنقل ينعش إظهار البنود "أ".خلال هذه "المتوسطة الملوثات العضوية الثابتة" الرأي "A" لا يزال المعروضة.

في حين أن البحث في هذه المسألة ، لقد رأيت إجابات أخرى مما يشير إلى أداء الدوران يدويا ([UIDevice setOrientation] أو عن طريق tranformation), ولكن هذا لا يساعد على فهم ما هي المشكلة ، خاصة لماذا يتصرف بشكل مختلف بين اثنين من نظام التشغيل.

لذا سؤالي هو:يجب على كل من بلدي UIViewControllers على UINavigationController كومة دعم بالضبط نفس التوجهات تسير إلى الأمام ؟ و إن لم يكن, ثم هل هناك شيء كنت بحاجة إلى القيام به لتحقيق ذلك تتصرف كما فعلت بالنسبة OS 3.1.3?

هل كانت مفيدة؟

المحلول

ويبدو أن أحدث نظام التشغيل تتطلب كل UIViewControllers في UINavigationController كومة لدعم مجموعة من التوجهات.

نصائح أخرى

لدي نفس المشكلة ووجدت الاجابة على هذا الرابط: UINavigationController الملاحة كومة مشاكل في وضع أفقي من وجهة نظري تحكم لا عودة نعم على shouldAutorotateToInterfaceOrientation.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top