我已使用以下代码
在子视图控制器中将方向从纵向更改为横向
NSNumber *value = [NSNumber numberWithInt:UIInterfaceOrientationLandscapeLeft];
[[UIDevice currentDevice] setValue:value forKey:@"orientation"];
但是当我转到背景并返回前景时,我按下按钮进入主页然后需要使用以下代码从横向更改方向
NSNumber *value = [NSNumber numberWithInt:UIInterfaceOrientationPortrait];
[[UIDevice currentDevice] setValue:value forKey:@"orientation"];
- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
if ([ConfigObjC currentPage] && [[ConfigObjC currentPage] isEqualToString:@"SubViewController"])
{
return UIInterfaceOrientationMaskLandscapeLeft;
}
else{
return UIInterfaceOrientationMaskPortrait;
}
}
但它不起作用。
当我没有去背景时,我成功地将风景从风景变为肖像。我非常感谢如何解决这个问题
答案 0 :(得分:0)
如果您想将窗户置于横向模式,您可以修改Xcode信息以仅支持横向,例如:
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
编码的另一种方法是更改UIWindow
的方向,如下所示:
UIApplication *application=[UIApplication sharedApplication];
[application setStatusBarOrientation:UIInterfaceOrientationLandscapeRight];
application.keyWindow.transform=CGAffineTransformMakeRotation(M_PI);
使用上述方法需要将ShouldAutoRotate
设置为NO
。
- (BOOL)shouldAutorotate{
return NO;
}
此外,如果横向模式中只显示多个视图,您可以使用属性transform
来旋转这些视图,如下所示:
//rotate screen only with view
[[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeRight];
self.view.transform = CGAffineTransformMakeRotation(M_PI/2);
希望可以帮到你!