我有一个应用程序,在纵向模式下有一些视图,我想在横向模式下呈现模态视图控制器...对于IOS 5.0和5.1工作完美,在IOS 6中它打开modalView但在纵向模式。您需要知道:我使用故事板并将VC设置为Landscape ... 在app delegate中我添加了:
-(NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)w
{return UIInterfaceOrientationMaskPortrait;}
如果我添加| UIInterfaceOrientationMaskLandscape
,我可以在其他视图中轮换该应用。
然后,对于摘要,我禁用了所有支持的界面方向.. 在这里,我尝试设置纵向和横向,并且运行良好,但在这种情况下,我可以旋转到左侧和后面的所有视图。
在ViewCOntroller之后,我想在风景中午餐,我有这个方法用于IOS 6:
-(NSUInteger)supportedInterfaceOrientations
{return UIInterfaceOrientationLandscapeLeft;}
-(BOOL)shouldAutorotate
{return YES;}
当我点击按钮午餐modalView运行后,我收到此错误:“支持的方向与应用程序没有共同的方向,并且应该返回YES”
我知道关于在该方法上返回YES但是如果我设置为NO,则没有任何反应。 我想考虑一下:我的应用程序需要在IOS 5及更高版本上工作。
有人可以帮我吗? 任何建议都是值得赞赏的;)
非常感谢
答案 0 :(得分:3)
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[self transformView2ToLandscape];}
-(void) transformView2ToLandscape {
NSInteger rotationDirection;
UIDeviceOrientation currentOrientation = [[UIDevice currentDevice] orientation];
if(currentOrientation == UIDeviceOrientationLandscapeLeft){
rotationDirection = 1;
}else {
rotationDirection = -1;
}
CGAffineTransform transform = [arController.viewController.view transform];
transform = CGAffineTransformRotate(transform, degreesToRadians(rotationDirection * 90));
[arController.viewController.view setTransform: transform];}
这对我来说很好。