个别界面强制横屏

#import "UINavigationController+InterfaceOrientation.h"

@implementation UINavigationController (InterfaceOrientation)

/*

*  模态方式跳转到到nav的控制器,要加入这个分类

*

*/

- (BOOL)shouldAutorotate {

if ([self.topViewController respondsToSelector:@selector(shouldAutorotate)]) {

return [self.topViewController shouldAutorotate];

}

return NO;

}

- (UIInterfaceOrientationMask)supportedInterfaceOrientations {

if ([self.topViewController respondsToSelector:@selector(supportedInterfaceOrientations)]) {

return [self.topViewController supportedInterfaceOrientations];

}

return [super supportedInterfaceOrientations];

}

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation {

if ([self.topViewController respondsToSelector:@selector(preferredInterfaceOrientationForPresentation)]) {

return [self.topViewController preferredInterfaceOrientationForPresentation];

}

return [super preferredInterfaceOrientationForPresentation];

}

@end

/*

* 模态方式跳转

*  控制器调用

*

- (BOOL)shouldAutorotate {

return YES;

}

- (UIInterfaceOrientationMask)supportedInterfaceOrientations {

return UIInterfaceOrientationMaskLandscapeRight;

}

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation {

return UIInterfaceOrientationLandscapeRight;

}

*

*/

/*

*  push方式跳转

*

- (void)viewWillAppear:(BOOL)animated {

[super viewWillAppear:animated];

if([[UIDevice currentDevice]respondsToSelector:@selector(setOrientation:)]) {

SEL selector = NSSelectorFromString(@"setOrientation:");

NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:[UIDevice instanceMethodSignatureForSelector:selector]];

[invocation setSelector:selector];

[invocation setTarget:[UIDevice currentDevice]];

int val = UIInterfaceOrientationLandscapeRight;//横屏

[invocation setArgument:&val atIndex:2];

[invocation invoke];

}

}

- (void)viewWillDisappear:(BOOL)animated {

[super viewWillDisappear:animated];

if([[UIDevice currentDevice]respondsToSelector:@selector(setOrientation:)]) {

SEL selector = NSSelectorFromString(@"setOrientation:");

NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:[UIDevice instanceMethodSignatureForSelector:selector]];

[invocation setSelector:selector];

[invocation setTarget:[UIDevice currentDevice]];

int val = UIInterfaceOrientationPortrait;

[invocation setArgument:&val atIndex:2];

[invocation invoke];

}

}

*

*/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容