美文网首页iOS小功能点iOS DeveloperiOS开发
iOS中单个页面横竖屏切换 点击退出再退回到竖屏。

iOS中单个页面横竖屏切换 点击退出再退回到竖屏。

作者: 景悟 | 来源:发表于2016-11-17 09:56 被阅读97次

    在开发项目的时候,遇到了一个问题,就是其中一个页面需要强制横屏,而其他页面要强制竖屏,然后返回在回到横屏,总结了一些人的经验给需要的人。


    首先在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中单个页面横竖屏切换 点击退出再退回到竖屏。

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