如何在UINavigationControllers中锁定方向

时间:2012-09-26 11:33:09

标签: iphone uinavigationcontroller orientation ios6

由于 iOS 6 中不推荐使用ShouldAutorotateToInterfaceOrientation,我无法锁定应用中的方向。在我的应用中,我有UINavigationControllers多个视图,一些视图需要支持纵向和横向,而其他视图只需要支持肖像。我怎么能过来这个问题请给我一些想法。

由于

4 个答案:

答案 0 :(得分:2)

使用此功能仅适用于 iOS 6

-(NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskPortrait;
}

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation

{

    return UIInterfaceOrientationMaskPortrait;

}

答案 1 :(得分:2)

通过继承UINavigationController来锁定方向。

Here is an excellent link on how to do that.

然后在子类UIViewController中覆盖以下方法以实现锁定(在本例中为纵向锁定)。

-(BOOL)shouldAutorotate
{
    return NO;
}
-(NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskPortrait;
}
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
    return UIInterfaceOrientationPortrait;
}

答案 2 :(得分:0)

在viewDidLoad

中添加以下代码
UIViewController *viewController = [[UIViewController alloc] init];
[self presentModalViewController:viewController animated:NO];
[self dismissModalViewControllerAnimated:NO];

用于锁定纵向方向

  • 选择属性检查器选项卡。
  • 将方向设为肖像。

添加功能

 - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return ( UIInterfaceOrientationIsPortrait(interfaceOrientation)); 
}

用于锁定横向

  • 选择属性检查器选项卡。
  • 将方向设置为横向。

添加功能

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return ( UIInterfaceOrientationIsLandscape(interfaceOrientation) ); 
}

答案 3 :(得分:0)

我找到了ShouldAutorotateToInterfaceOrientation的替代品。我想建议你浏览这些链接 -

http://www.roostersoftstudios.com/2012/09/21/ios6-autorotation-changes

由于