غير قادر على إدارة الاتجاه مع وحدات تحكم العرض المتعددة

StackOverflow https://stackoverflow.com/questions/1954298

سؤال

أحاول إنشاء تطبيق iPhone يحتوي على عرضين فرعيين في النافذة الرئيسية. كل طريقة عرض لها فئة فرعية UIVIEWCONTROLLER الخاصة بها المرتبطة بها. أيضًا ، ضمن تطبيق كل وحدة تحكم ، أضفت الطريقة التالية:

-(BOOL)shouldAutorotateToInterfaceOrientation:
 (UIInterfaceOrientation)interfaceOrientation {
    return YES;
   }

وبالتالي ، أتوقع أن تستجيب كل من وجهات النظر للتغيرات في التوجه. ولكن هذا ليس هو الحال. فقط أول تمت إضافة عرض إلى النافذة الرئيسية للتطبيق يستجيب للتوجيه. (إذا قمت بتبديل الترتيب ، يتم إضافة طرق العرض ، ثم يستجيب الرأي الآخر فقط. وبعبارة أخرى ، إما أن تعمل-ولكن واحد فقط في وقت واحد.)

لماذا هذا؟ أليس من الممكن التعامل مع تغييرات الاتجاه لأكثر من عرض واحد؟

شكرًا!

تحرير: شخص آخر كان لديه هذا السؤال ، لذلك أقوم بنسخ الحل هنا:

تمكنت من معالجة هذه المشكلة من خلال توفير طريقة عرض جذر ووحدة تحكم عرض الجذر مع الطريقة "يجب أن تكون ..." وإضافة وجهات نظراتي الأخرى كآراء فرعية إلى عرض الجذر. ترث الآراء الفرعية السلوك التلقائي ، ويجب ألا تحتاج وحدات التحكم في العرض المرتبطة إلى تجاوز "يجب أن تكون ..."

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

المحلول 2

أخيرا ذاهب لنشر الحل هنا:

في الأساس ، وصل الأمر إلى وجود "جذر" UiviewController. في هذا ، لدي الطريقة:

-(BOOL)shouldAutorotateToInterfaceOrientation:
(UIInterfaceOrientation)interfaceOrientation {
        return YES;
}

لقد أضفت أيضًا المشاهدات التي أردت أن أتناولها كآراء فرعية إلى Uiview UiviewContoller من الجذر. تحتوي هذه الآراء الفرعية أيضًا على وحدات تحكم العرض ولكنها تفعل ذلك ليس تجاوز shouldAutorotateToInterfaceOrientation. في الواقع ، يبدو أن إضافة هذه الطريقة إلى وحدات التحكم في العرض هذه لا يكون لها أي تأثير على الإطلاق. فقط عرض الجذر contoller shouldAutorotateToInterfaceOrientation يبدو أن يعمل ويتم تدوير جميع المشاهدات الفرعية بشكل صحيح.

نصائح أخرى

تحتاج إلى تجاوز طريقة NustautorotateToInterfaceorientation على جميع وحدات التحكم الثلاثة التي لديك.

يمكنك محاولة تنفيذ هذه الطريقة في الفصل ، والتي تحتوي على كل من مشاهدات ViewController

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