سؤال

لقد خلق التطبيق لباد التي يجب أن يتم عرض الشاشة الرئيسية فقط في وضع عمودي.لذلك لقد استخدمت التعليمات البرمجية أدناه في فيوديدلود.

[[UIDevice currentDevice] setOrientation:UIDeviceOrientationPortrait];

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

enter image description here

ولكن يجب أن يكون مثل هذا:

enter image description here

هل يمكن لأي شخص مساعدتي في حل هذه المشكلة.شكرا مقدما.

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

المحلول

[[UIDevice currentDevice] setOrientation:UIDeviceOrientationPortrait];

تم إهمال هذه الطريقة.لا يمكنك استخدام هذه الطريقة بعد الآن.

https://stackoverflow.com/a/12813644/1405008

يعطي الرابط أعلاه تفاصيل حول كيفية توفير الوضع الرأسي فقط لـ UIViewController.

إذا كنت دفعت إلى NavigationViewController ثم حاول هذا.

https://stackoverflow.com/a/16152506/1405008

نصائح أخرى

التعليمة البرمجية التالية على وشك تحويل عرض NavigationController من صورة إلى المناظر الطبيعية برمجيا:

giveacodicetagpre.

آمل أن أقدم لك بعض الأفكار الأخرى.

نسخ هذا الرمز في FACTDIDLOAD الخاص بك

giveacodicetagpre.

set bool وفقا لمتطلباتكم

منك Screenshots، يمكنني أن أرى أن تطبيقك هو قاعدة تبويب.قبل أيام قليلة واجهت نفس المشكلة.أنا حلها.سألت سؤالا تقريبا بنفسك.ثم بعد بضع ساعات من القراءة، حل المشكلة.هناك رابط إلى My سؤال وجواب .

هناك الكثير من الأسئلة والأجوبة المشابهة حول SO، ولكن بطريقة ما لم يعمل أي منها معي، كما كنت بحاجة للسماح بذلك الوضع الرأسي فقط على iPhone, ، و الوضع الأفقي فقط على iPad, ، لذا أشارك الحل الخاص بي:

  1. قم بإزالة جميع الطرق المتعلقة بتوجيه الجهاز (shouldAutoRotate, supportedInterfaceOrientations, preferredInterfaceOrientations, الخ) لأنها قد تكون متعارضة مع بعضها البعض

  2. في إعدادات المشروع، قم بتمكين جميع الأوضاع الأربعة:عمودي، مقلوبًا، أفقيًا على اليسار، أفقيًا على اليمين

  3. اختر طريقة لتحديد نوع الجهاز (iPhone أو iPad).انا استخدم UIScreen.mainScreen().bounds.height which ليست مثالية ولكنها تناسب احتياجاتي

  4. ضع ما يلي في AppDelegate

    func application(application: UIApplication, supportedInterfaceOrientationsForWindow window: UIWindow?) -> UIInterfaceOrientationMask {
    
        if UIScreen.mainScreen().bounds.height < 760 { //iPhone
            UIApplication.sharedApplication().setStatusBarOrientation(.Portrait, animated: false);
            return UIInterfaceOrientationMask.Portrait;
        } else {
            UIApplication.sharedApplication().setStatusBarOrientation(.LandscapeLeft, animated: false);
            return UIInterfaceOrientationMask.Landscape;
        }
    }
    

تم اختباره على Xcode 7.1.1 على جميع أجهزة محاكاة iPhone وiPad التي تعمل بنظام iOS9.1

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