سؤال

مشكلة سريعة:

لديّ uitabbarcontroller مع وحدات تحكم ملاحة 2 [دعنا ندعوها إلى اليسار واليمين

في وحدة التحكم اليسرى المحددة الافتراضية ، يمكنني دفع وحدة تحكم عرض جديدة تكتشف اتجاه الواجهة.

على وحدة التحكم الصحيحة ، يمكنني دفع وحدة التحكم في العرض نفسها ، لكنها لن تكتشف اتجاه الواجهة ، أو في هذا الشأن ، لن يذهب إلى طريقة الواجهة التي يجب أن تكون على الإطلاق في T___T

هالب !!

إذا كان من الأهمية بمكان ، فإن العرض contoller الذي أدفعه باستخدام خاصية hidesbottombarwhenpushed.

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

المحلول

هل يقوم UITabbarController بتنفيذ التناوب التلقائي؟ يجب على أي طفل ViewController الذي يريد تنفيذ Autorotate أن يكون له الوالدين.

نصائح أخرى

على الأرجح هذه مشكلتك:

تدعم وحدات التحكم في شريط علامات التبويب اتجاه صورة بشكل افتراضي ولا تدور في اتجاه المناظر الطبيعية ما لم تدعم جميع وحدات التحكم في عرض الجذر مثل هذا الاتجاه. عند حدوث تغيير اتجاه الجهاز ، يستفسر وحدة تحكم شريط التبويب من مجموعة وحدات التحكم في العرض. إذا كان أي واحد منهم لا يدعم الاتجاه ، فإن وحدة التحكم في شريط علامة التبويب لا تغير اتجاهها.

الحل هو تجاوز الطريقة التالية في كل وحدة تحكم عرض تؤدي إلى عرضك:

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

على سبيل المثال ، بدلاً من ذلك باستخدام الافتراضي UITabBarController في IB ، استبدلها بالفئة الفرعية الخاصة بك التي تحتوي على الطريقة أعلاه فقط.

لقد تأخرت قليلاً عن الحفلة في هذا الأمر ، لكنني واجهت مشكلة مع Autorotation عند بدء التشغيل لتطبيق Tab Bar الذي أردت دائمًا تشغيله في صورة.

يحتوي PLIST للتطبيق على الإعدادات اللازمة للبدء في الوضع والسماح فقط بوضع الصورة ، وتسمح جميع وحدات التحكم في العرض الخاصة بي فقط بوضع الصورة. ومع ذلك ، عندما بدأت التطبيق الذي يحمل جهاز iPhone الخاص بي في المناظر الطبيعية ، بدأ التطبيق في صورة ، ولكن بعد ذلك تم تدويره إلى المناظر الطبيعية!

بدلا من الفئة الفرعية UITabBarController, ، أنا ببساطة تجاوز UITabBarControllershouldAutorotateToInterfaceOrientation: الطريقة باستخدام فئة على الفصل UITabBarController. قمت بتضمين هذا الرمز في مندوب التطبيق الخاص بي:

@implementation UITabBarController(UITabBarControllerCategory)

-(BOOL)shouldAutorotateToInterfaceOrientation:
                 (UIInterfaceOrientation)toInterfaceOrientation
{
    return (toInterfaceOrientation == UIInterfaceOrientationPortrait);
}

@end

يعمل بشكل جميل ، وخفيفة الوزن للغاية.

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