美文网首页
个别界面强制横屏

个别界面强制横屏

作者: 90后小伙 | 来源:发表于2016-09-24 15:55 被阅读63次

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

    }

    }

    *

    */

    相关文章

      网友评论

          本文标题:个别界面强制横屏

          本文链接:https://www.haomeiwen.com/subject/dbpxyttx.html