碰到一个功能就是使指定的页面横屏,然后找了一些方法其中之一是两句代码:如下(不推荐,有的swift环境支持有的不支持)

 //MARK:将这个页面横屏的方法override func shouldAutorotate() -> Bool {return true}override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {let re = UIInterfaceOrientationMask.LandscapeLeftreturn re}

下面介绍一种稍微稳定点的方法

Declaration
SWIFT
optional func application(_ application: UIApplication, supportedInterfaceOrientationsForWindow window: UIWindow?) -> UIInterfaceOrientationMask
OBJECTIVE-C
- (UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window

然后上官方文档:(很有用解释很全面)
This method returns the total set of interface orientations supported by the app. When determining whether to rotate a particular view controller, the orientations returned by this method are intersected with the orientations supported by the root view controller or topmost presented view controller. The app and view controller must agree before the rotation is allowed.

If you do not implement this method, the app uses the values in the UIInterfaceOrientation key of the app’s Info.plist as the default interface orientations.

大概意思是这个方法返回整个项目的屏幕定向设置。当打算要旋转一个视图控制器的时候,这个方法的分界线为导航跳转的根视图控制器(即导航视图的跟控制器决定转向,此后再同一个导航下的转向都跟根视图控制器一致),模态视图的最上层视图控制器(就是用present弹出的窗口的转向是由最后一present出来的视图控制器控制的转向决定的,即使你在前一个present窗口强制设置成竖屏最上层设置成横屏,当最上层dismiss掉后下一层还是横屏知道模态窗口全部dismiss),app和视图控制器在旋转前必须保持一致。
如果没有使用此方法,那么屏幕转向会默认遵从info.plist文件中的设置。

以上的官方文档的说法我已经亲自试验过了,正确并且让我大开眼界。
下面上我自己的一部分代码,想要试验大家可以自己建一个例子。
版本:xcode 7.3.1 swift 2.2
步骤 1.在appdelegate 中添加屏幕旋转方法
2.设置全局静态变量 来控制在某个页面是否要横屏
3.设置页面横屏开关

AppDelegate//设置横屏func application(application: UIApplication, supportedInterfaceOrientationsForWindow window: UIWindow?) -> UIInterfaceOrientationMask {if GlobalConstant.isLandScape == true{//向左横屏return       UIInterfaceOrientationMask.LandscapeLeft}else{//竖屏return UIInterfaceOrientationMask.Portrait}}

2.设置全局静态变量

import UIKitstruct GlobalConstant {/// 是否横屏static var isLandScape:Bool = false
}

3.页面控制 只要在viewDidLoad中把全局参数设置成true 然后界面显示后设置成false 就可以将制定页面横屏了

import UIKitclass landScapePage: UIViewController {override func viewDidLoad() {super.viewDidLoad()//控制 横屏为true 使当前页面 横屏GlobalConstant.isLandScape = true
//        GlobalConstant.isLandScape = falseview.backgroundColor =  UIColor.whiteColor()if navigationController == nil{let btn = getBtn("click", title: "模态返回按钮", frame: CGRect.init(x: 50, y: 100, width: 200, height: 40))let preBtn = getBtn("preClick", title: "二层模态窗口弹出", frame: CGRect.init(x: 50, y: 200, width: 200, height: 40))}}override func viewDidAppear(animated: Bool) {super.viewDidAppear(animated)//不希望其他页面也横屏 那么在页面显示后要设置 横屏为falseGlobalConstant.isLandScape = false}func click(){dismissViewControllerAnimated(true, completion: nil)}func preClick(){presentViewController(SecPreViewController(), animated: true, completion: nil)}/**创建通用btn- parameter action: 点击事件- parameter title:  标题- parameter frame:  范围- returns: 返回值*/func getBtn(action:Selector,title:String,frame:CGRect) -> UIButton{let btn = UIButton.init(frame: frame)btn.setTitle(title, forState: .Normal)btn.backgroundColor = UIColor.grayColor()btn.addTarget(self, action: action, forControlEvents: .TouchUpInside)view.addSubview(btn)return btn}override func didReceiveMemoryWarning() {super.didReceiveMemoryWarning()// Dispose of any resources that can be recreated.}}

这边是横屏的一个Demo

将指定页面横屏 landScape相关推荐

  1. 移动端如何强制页面横屏

    ##背景 最近公司要开发一个移动端的类网页游戏: 长按按钮有个自行车一直骑行,碰到某个国家的地标就弹出该国的相应say hello的tip,要求横屏显示,不能竖屏.这是js实现手机横竖屏事件 然而当用 ...

  2. iOS的横屏(Landscape)与竖屏(Portrait)InterfaceOrientation

    转自:http://www.molotang.com/articles/1530.html 接着上篇写的触摸事件,这次借机会整理下iOS横屏和竖屏的翻转方向支持,即InterfaceOrientati ...

  3. mysql页码_PHP+MySQL实现输入页码跳转到指定页面功能示例

    本文实例讲述了php+mysql实现输入页码跳转到指定页面功能.分享给大家供大家参考,具体如下: 一.代码 conn.php: $id=mysql_connect("localhost&qu ...

  4. iOS点击推送消息跳到应用指定页面

    现在的推送用的越来越频繁,几乎每个应用都开始用到了.其实又有几个用户会去看推送消息呢?没办法,产品经理最大啊,只是苦了我们这一帮程序员啊!闲话少说,进入正题.兄弟我用的是极光推送,自然是以极光推送为例 ...

  5. android 使用浏览器打开指定页面

    今天,简单讲讲android里如何使用浏览器打开指定的网页. 之前,我做一个功能时,服务器返回一个url地址,我需要跳转到指定网页.却发现自己不知道怎么做,在网上搜索了资料,最终是解决了问题.这里记录 ...

  6. 如何跳转指定页面后再次跳转到另一页面或原来的页面

    这里可以采用redirect以get形式向指定页面发出get请求,指定页面完成后会再次跳转到redirect后边指定的页面 (注意:这里的redirect只是一个自定义参数,并不是自带的,名称可以随便 ...

  7. android点击通知跳转到服务,Android 接收推送消息跳转到指定页面的方法

    问题的提出 本次接入的是个推,其他家的推送没有研究过,思路应该是类似的 App在前台,这个时候需要弹出一个对话框,提醒用户有新的消息,是否要查看,查看的话跳转到指定页面 App在后台,或是App进程已 ...

  8. java跳转画面后画面白了_如何跳转指定页面后再次跳转到另一页面或原来的页面...

    c#图解教程第5版数万读者认可的新 99.33元 (需用券) 去购买 > 这里可以采用redirect以get形式向指定页面发出get请求,指定页面完成后会再次跳转到redirect后边指定的页 ...

  9. js微信小程序页面左上角返回跳转指定页面

    微信小程序非导航栏tabBar页面左上角返回默认返回上一次的页面(即进入当前页面的前一页面),如果需要自定义页面,可以通过js中onUnload函数进行指定页面跳转. ①关闭所有页,打开url指定页面 ...

最新文章

  1. RandomForestClassifier参数min_samples_leaf和min_samples_split理解
  2. QML自定义IP地址输入框
  3. 做 NLP 算法研究,去大公司还是创业公司?
  4. Linux系列:Ubuntu/fedora实用小技巧—禁止自动锁屏、设置免密码自动登录、免密码执行sudo操作...
  5. SAP CRM text table DB update
  6. 快速排序quicksort算法优化
  7. 采用AOP 的观点来 Log 所有方法的调用
  8. ceph--磁盘和rbd、rados性能测试工具和方法
  9. 利用ansys计算机械结构最小安全系数教程,利用ANSYS计算复杂薄壁杆件截面特性.pdf...
  10. goldenDict有道地址
  11. 第一次进入页面,访问服务器图片报404,刷新或者回退重新进入,就可以加载图片。
  12. java获取pfx证书私钥_从PFX文件中读取私钥
  13. 【学习】笔记本电脑重新安装系统win10
  14. 人脸检测技术即matlab的实现,人脸检测研究及MATLAB实现.doc
  15. 贝叶斯统计——先验分布与后验分布
  16. Mac 查找应用安装路径
  17. 随机打乱函数 torch.randperm的使用(类似tensorflow中的tf.random_shuffle)
  18. mysql的事件开启,停止和启动
  19. 基于MATLAB2020b的J. R.S. THOM的水强制循环沸腾压降预测模型压降倍乘系数计算器
  20. RabbitMQ集群环境搭建

热门文章

  1. VS(visual studio)注释快捷键及自定义设置
  2. 计算机毕业设计 SSM旅游推荐系统 智慧旅游管理系统 旅游景区管理系统Java
  3. Windows7 CMD命令提示符下的5个小技巧
  4. Ncvicat 打开sql文件方法
  5. 关联挖掘算法及其应用(1)
  6. LTE-TDD随机接入过程(3)-RAR(MSG2)以及MSG1的重传
  7. 10个编写快速运行的Mathematica代码的小诀窍
  8. 上坡路定点停车与坡道起步--驾考宝典
  9. 20210115领扣刷题
  10. HQ-610型超声波多普勒流量计