سؤال

لدي بسيط جدا السؤال ولكن الجواب ليس سهلا.

أريد أن إخفاء UITabBar عند تغيير التوجه.

نظرت 2 طرق :

الإطار الطريقة

myAppDelegate.tabBarController.tabBar.frame = CGRectMake(<<bottomOfScreen>>);

يعمل بشكل جيد ولكن لدي مساحة فارغة ، لذلك حاولت أن تلعب مع tabBarController.عرض.الإطار et myViewController.عرض.الإطار ولكن لم أحصل على أي نتيجة جيدة.

الملاحة تحكم طريقة

myOtherVC.hideTabBarWhenPushed = YES;
[self.navigationController pushViewController:myOtherVC animated:NO];

يعمل ولكن ليس حل جيد بلدي التطبيق

تحديث:

[appDelegate.tabBarController.view removeFromSuperview];
[self.view removeFromSuperview]; [appDelegate.window addSubview:self.view];
self.view.frame = CGRectMake(0,0,480,320);

يعمل بشكل جيد ولكن لا autorotate بعد الآن (وبطبيعة الحال ، لم أغير shouldAutorotate ويعود دوما نعم)


كيف يمكنني معنى خفي. م بلدي tabBar وجعل العرض الحالي أخذ الفضاء ؟


شكرا

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

المحلول

يمكنك استخدام الحل الحالي جنبا إلى جنب مع:

[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didRotate:) name:@"UIDeviceOrientationDidChangeNotification" object:nil];

للكشف عن الدوران.(أعتقد أن الجمع بين هذا مع الرأي.تحويل = CGAffineTransformMakeRotation أن تجعل تدوير...?)

نصائح أخرى

طريقتين أعتقد يمكنك القيام بذلك بسهولة ليكون:

  1. تحديث الكائنات مرة أخرى إلى tabBar تحكم - مع hidesBottomBarWhenPushed تعيين إلى " نعم " من أجل viewControllers كنت تريد أن تكون مخفية.
  2. الخيار الآخر هو أن تجعل النظام الخاص بك عرض سوى عرض النافذة عندما يكون الهاتف هو استدارة ثم نضع tabBarController.نظر مرة أخرى في النافذة عندما يكون الهاتف هو استدارة الظهر

ويساعد هذا الأمل

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