0

我的应用程序中有一个视图控制器。让它的第一个视图控制器,我的第一个视图控制器在手机中以纵向模式出现,当用户以横向模式旋转手机时,第一个视图控制器也以横向模式旋转。

它工作正常,现在我在第一个视图控制器上有一个按钮,当我触摸按钮时,第二个视图控制器出现。我只想做的是,即使第一个视图控制器处于横向模式,第二个视图控制器也应该始终以纵向模式出现。是否有任何方法我必须重写才能获得此功能?

4

2 回答 2

1

在导航控制器中,控制器的方向取决于导航控制器的根控制器的方向。

你有两种可能:

  1. 根据实际显示的控制器,使您的根控制器shouldAutorotateToInterfaceOrientation:返回不同的值;

  2. 在您的视图控制器的视图上使用转换,以便旋转它。

我会尝试第一种方法,开始。看看这篇文章,了解如何去做(只是忽略这些UITabBarController东西),或者试试这个(它只是将消息中继到导航层次结构中的顶部控制器):

 - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {   
    return [self.navigationController.topController shouldAutorotateToInterfaceOrientation:interfaceOrientation];
 }

为了在 iOS6 上达到同样的效果,请尝试定义以下方法:

-(NSUInteger)supportedInterfaceOrientations {
  return [self.navigationController.topController supportedInterfaceOrientations];
}

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation {
  return [self.navigationController.topController  preferredInterfaceOrientationForPresentation];
}
于 2013-01-07T10:29:06.643 回答
1
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
   // Return YES for supported orientations
    return (interfaceOrientation == UIInterfaceOrientationPortrait);
}

在第二个视图控制器中保留这个。

于 2013-01-07T11:24:06.323 回答