سؤال

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

هذا هو التسلسل الهرمي من الآراء وحدات التحكم:

  • MainviewController (يمتد UITABBARCONTROLLER فقط لتجاوز AntautorotateoTointerFaceorationSoration :)
    • ثلاثة overendedwiViewControllers ثلاث علامات تبويب (أيضا أولئك الذين لديهم indautorotatetointerfaceorations بشكل صحيح يستقر بشكل صحيح).

إذا قمت بإلغاء توجيه الجهاز إلى المناظر الطبيعية مع:

[uidevice currentDevice] setorientation: uiinterfaceorationlandscaperight]؛

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

أي أدلة؟ هل فاتني شيء؟

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

المحلول

حاول القيام بما يلي. لست متأكدا لماذا لا يعمل من أجلك

1) تعيين مفتاح UIInterfaceoration
إلى UIInterFaceorientationLandScaperight في ملفك .plist

2) تجاوز طريقة UITABBARCONTROLLER الخاصة بك. طريقة؛ في التعليمات البرمجية التالية تتعامل فقط مع علامة التبويب صفر واحد، وفقط مع وحدة تحكم واحدة: إذا كانت لديك وحدة تحكم ملاحة وتريد التحكم في وحدات تحكم مختلفة قد تكون على المكدس، فعليك تعديل الرمز وفقا لذلك

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {

    BOOL tabZeroController = [[[self.viewControllers objectAtIndex:0] visibleViewController] isKindOfClass:[YourTabZeroTableViewController class]];

    BOOL tabOneController = [[[self.viewControllers objectAtIndex:1] visibleViewController] isKindOfClass:[YourTabOneTableViewController class]];


    if(self.selectedIndex == 0 && tabZeroController)
        return (interfaceOrientation == UIInterfaceOrientationLandscapeRight);

    if(self.selectedIndex == 1 && tabOneController)
        return (interfaceOrientation == UIInterfaceOrientationLandscapeRight);

    return NO;

}

2) الإعداد

[[UIDevice currentDevice] setOrientation:UIInterfaceOrientationLandscapeRight];

في طريقة ApplicationDFinishLaunglinunching () المطلوبة فقط للمحاكاة، وليس على جهاز

3) أضف AntautorotateoNeDointerFaceorationoration (الطريقة) في وحدات التحكم الخاصة بك

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

4) قم بتشغيل التطبيق على جهازك وتحقق من أنه يعمل بشكل صحيح باستخدام عنصر قائمة الأجهزة تدوير اليسار وتدوير اليمين. يجب أن ترى الشاشة في وضع أفقي.

نصائح أخرى

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