我在哪里可以设置UINavigationControllers supportedOrientati

2019-07-31 06:17发布

我使用的是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的?

感谢您帮助堆!

干杯!

Answer 1:

如果你想让它咨询它的孩子们又可以将类别添加到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


Answer 2:

子类的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];

这是我的应用程序工作,希望它可以帮助你。



文章来源: Where can I set a UINavigationControllers supportedOrientations?