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];

}

你可能感兴趣的:(iOS中单个页面横竖屏切换 点击退出再退回到竖屏。)