我使用的是iOS 6.0测试版中,我的旋转不工作了。
我在哪里可以设置UINavigationControllers supportedOrientations?
根据这一http://news.yahoo.com/apple-ios-6-beta-3-changes-182849903.html一个UINavigation控制器不征询自己的孩子,以确定他们是否应该自动旋转。
我不使用shouldAutorotateToInterfaceOrientation:了,因为它已经过时了。 相反,我使用supportedInterfaceOrientations:和shouldAutoRotate:直到我把一个视图控制器到NavigationController(作为一个孩子),他们都工作正常。 从那时起,在指定的ViewController的方向不工作了。 现在看来,这是使用由导航控制器设定的方向(UIInterfaceOrientationMaskAllButUpsideDown)
我如何可以设置NavigationController的InterfaceOrientations让我ViewControllers锁定到人像方位?
我一定要继承UINavigationController的,并设置有InterfaceOrientations? 是不是不好的做法,在iOS版6.0还继承UINavigationController的?
感谢您帮助堆!
干杯!
如果你想让它咨询它的孩子们又可以将类别添加到UINavigationController的
@implementation UINavigationController (Rotation_IOS6)
-(BOOL)shouldAutorotate
{
return [[self.viewControllers lastObject] shouldAutorotate];
}
-(NSUInteger)supportedInterfaceOrientations
{
return [[self.viewControllers lastObject] supportedInterfaceOrientations];
}
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
return [[self.viewControllers lastObject] preferredInterfaceOrientationForPresentation];
}
@end
子类的UINavigationController
//OnlyPortraitNavigationController.h
@interface OnlyPortraitNavigationController : UINavigationController
//OnlyPortraitNavigationController.m
@implementation OnlyPortraitNavigationController
- (BOOL)shouldAutorotate {
return NO;
}
-(UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
return UIInterfaceOrientationPortrait; //for locked only Portrait
}
目前新的子类navigationController你去画像的ViewController
SomeViewController *onlyPortraitVC = [[SomeViewController alloc]init];
OnlyPortraitNavigationController *portraitNav = [[OnlyPortraitNavigationController alloc]initWithRootViewController:onlyPortraitViewController];
[self presentViewController:portraitNav animated:YES completion:NULL];
这是我的应用程序工作,希望它可以帮助你。