1

由于在iOS 6ShouldAutorotateToInterfaceOrientation中已弃用,我无法在我的应用程序中锁定方向。在我的应用程序中,我有多个视图,一些视图需要同时支持纵向和横向,而其他视图只需要支持纵向。我该如何解决这个问题,请给我一些想法。UINavigationControllers

谢谢

4

4 回答 4

2

使用此功能仅适用于iOS 6

-(NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskPortrait;
}

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation

{

    return UIInterfaceOrientationMaskPortrait;

}
于 2012-09-26T12:02:58.377 回答
2

您可以通过继承 UINavigationController 来锁定方向。

这是有关如何执行此操作的出色链接。

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

-(BOOL)shouldAutorotate
{
    return NO;
}
-(NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskPortrait;
}
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
    return UIInterfaceOrientationPortrait;
}
于 2014-02-13T20:35:54.807 回答
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) ); 
}
于 2012-09-26T12:00:43.077 回答
0

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

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

谢谢

于 2012-10-08T06:17:48.130 回答