iOS中单个页面横竖屏切换 点击退出再退回到竖屏。
在开发项目的时候,遇到了一个问题,就是其中一个页面需要强制横屏,而其他页面要强制竖屏,然后返回在回到横屏,总结了一些人的经验给需要的人。
首先在AppDelegate.h里面添加@property(nonatomic,assign)NSInteger allowOrientations; 然后实现下面的方法。
- (NSUInteger)application:(UIApplication*)application supportedInterfaceOrientationsForWindow(UIWindow*)window{
if(_allowOrientations ==1) {
return UIInterfaceOrientationMaskLandscapeRight;
}
else{
return (UIInterfaceOrientationMaskPortrait);
}
}
最后在需要使用横竖屏切换的控制器导入Appdelegate.h文件 实现方法:
- (void)viewDidLoad{
[superviewDidLoad];
AppDelegate * appDelegate = (AppDelegate *)[UIApplicationsharedApplication].delegate;
appDelegate.allowRotation =1;
}
返回到上一个页面自动切换到竖屏:
if([[UIDevicecurrentDevice] respondsToSelector:@selector(setOrientation:)]) {
SEL selector =NSSelectorFromString(@"setOrientation:");
NSInvocation*invocation = [NSInvocationinvocationWithMethodSignature:[UIDeviceinstanceMethodSignatureForSelector:selector]]; [invocation setSelector:selector];
[invocation setTarget:[UIDevicecurrentDevice]];
intval =UIInterfaceOrientationPortrait;
[invocation setArgument:&val atIndex:2];
[invocation invoke];
}