我有以下视图控制器设置推:在iOS6的,麻烦迫使视图控制器某些interfaceOrientation当栈
viewController1能够自由旋转到任何方位除了肖像倒挂。
viewController2被推到viewController1之上,我想它是相同的方向viewController1是,我希望它不能够旋转。
viewController3被推到viewController2之上。我希望viewController3处于纵向模式。
我有很多问题试图在iOS6中完成这一点(还没有在iOS5中尝试过)。首先,我已经创建了自己的导航控制器,并把它下面:
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
return [self.topViewController preferredInterfaceOrientationForPresentation];
}
- (NSUInteger)supportedInterfaceOrientations
{
return [self.topViewController supportedInterfaceOrientations];
}
- (BOOL) shouldAutorotate
{
return [self.topViewController shouldAutorotate];
}
我已经尝试了很多这些东西的不同组合就知道结果。主要是我在挣扎的地方是,如果vc2处于风景中,强制将vc3呈现为肖像。任何帮助,将不胜感激。
那么你的意思是我不得不推动它作为模态观来强制轮换?我无法将它推到导航堆栈上并强制它? – 2013-03-08 19:05:19
是的,除了你所说的方式之外,你必须将它呈现为过去被称为模态视图控制器的形式,而不是将其推送到导航堆栈上。呈现的视图控制器可以强制旋转。推到导航堆栈上的视图控制器不能;该应用程序可以动态决定如何在*用户旋转设备*时作出响应,但仅仅将视图控制器推入导航堆栈的操作不会导致应用程序界面旋转。 – matt 2013-03-08 19:10:18
您是否碰巧知道是否有手动方式强制视图控制器在提交后旋转?不是让用户旋转它,而是让它自行旋转? – 2013-03-08 19:14:11