iOS中强制转某个页面为横屏,键盘也横屏

来源:互联网 发布:2016 python 书籍推荐 编辑:程序博客网 时间:2024/06/06 14:14

我项目中全部是竖屏,但是有那么几个是横屏,也有几个是横屏中要输入一些信息,然后就要使得键盘也是横屏。

1、设置项目的Device Landscape中的信息,要勾选这么几项,如下:


2、设置强制横屏代码

在viewDidLoad方法里面添加如下代码:

- (void)viewDidLoad {

    [superviewDidLoad];

    if ([[UIDevicecurrentDevice] respondsToSelector:@selector(setOrientation:)]) {

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

        NSInvocation *invocation = [NSInvocationinvocationWithMethodSignature:[UIDeviceinstanceMethodSignatureForSelector:selector]];

        [invocation setSelector:selector];

        [invocation setTarget:[UIDevicecurrentDevice]];

        int val =UIInterfaceOrientationLandscapeRight;

        [invocation setArgument:&val atIndex:2];

        [invocation invoke];

    }

}


返回到上一个页面的时候进行一些处理,否则导致上一个页面也变成了横屏状态:这个时候要在viewWillDisappear方法里面添加如下代码:

-(void)viewWillDisappear:(BOOL)animated

{

    if ([[UIDevicecurrentDevice] respondsToSelector:@selector(setOrientation:)]) {

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

        NSInvocation *invocation = [NSInvocationinvocationWithMethodSignature:[UIDeviceinstanceMethodSignatureForSelector:selector]];

        [invocation setSelector:selector];

        [invocation setTarget:[UIDevicecurrentDevice]];

        int val =UIInterfaceOrientationPortrait;

        [invocation setArgument:&val atIndex:2];

        [invocation invoke];

    }

}

其实viewWillDisappear代码也就是强制转成竖屏的意思,特别要注意的是 int val = UIInterfaceOrientationPortrait; 这句代码。



最终效果如下图:

3 0
原创粉丝点击