سؤال

إذا تمت إضافة عرض إلى النافذة ، يتم تعيين الاتجاه كصورة حتى لو كان الجهاز في المناظر الطبيعية. إذا تمت إضافة العرض في مندوب التطبيق ، التطبيق: didFinishLaunchingWithOptions: الطريقة ، فهو يعمل بشكل صحيح. ولكن إذا تمت إضافة العرض لاحقًا ، فهذا لا.

على سبيل المثال ، لدي روتين لتبديل طرق العرض. أبسط أشكال:

- (void)switchToNewViewController:(UIViewController *)newViewController { 
 if ([[window subviews]count]!=0) {
  [[[window subviews]objectAtIndex:0] removeFromSuperview];
 }
 [window addSubview:newViewController.view];
}

إذا تم استدعاء هذا من داخل didfinishlaunching ، فإن التوجه صحيح. إذا لم يكن الأمر كذلك ، فإن التوجه هو صورة.

أبسط حالة داخل didfinishlaunching لدي السطران التاليان

// The following line works
[self switchToNewViewController:fullScreenViewController];

// The following line which delays the method call until later results
// in incorrect orientation 
[self performSelector:@selector(switchToNewViewController:) withObject:fullScreenViewController afterDelay:0.1];

هل هناك طريقة لجعل المنظر له اتجاه مناسب؟

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

المحلول

تأكد

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
{
    return YES; //this supports all orientations
}

إذا كنت تربط الأشياء في InterfaceBuilder أيضًا ، فتأكد من تكوين View و ViewController إلى الاتجاه الأولي الذي تريده. (هناك القليل من السهم في الزاوية اليمنى العليا لتدوير المشاهدات وعرض وحدات التحكم)

إذا كنت لا تزال تواجه مشاكل ، هل تستخدم uinavigationController أو ما شابه؟ يجب أن يكون UinavigationController فطائر فرعية ويجب تنفيذها إذا كنت ترغب في دعم شيء آخر غير Portait.

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