说明

获取最顶层的ViewController

解决

为UIApplication写个扩展

// MARK: UIApplication extensionsextension UIApplication {class func getTopViewController(base: UIViewController? = UIApplication.shared.keyWindow?.rootViewController) -> UIViewController? {if let nav = base as? UINavigationController {return getTopViewController(base: nav.visibleViewController)} else if let tab = base as? UITabBarController, let selected = tab.selectedViewController {return getTopViewController(base: selected)} else if let presented = base?.presentedViewController {return getTopViewController(base: presented)}return base}
}

用法如下

if let topVC = UIApplication.getTopViewController() {topVC.view.addSubview(forgotPwdView)
}

参考

https://stackoverflow.com/questions/26667009/get-top-most-uiviewcontroller

获取最顶层的ViewController top ViewController swift相关推荐

  1. iOS获取最顶层ViewController

    1.获取当前屏幕显示的 Viewcontroller 案例源码 2.UIApplication 的简析 3.KeyWindow 的简析 4.rootViewController 的简析 5.Prese ...

  2. DTCMS自定义标签,获取所有栏目文章列表TOP,以及文章通用URL

    网站最近更新等地方,发现DTCMS没有获取所有栏目文章列表的标签,只能自己写 思路:获取所有栏目文章列表不难,难点在于linkurl的写法 1.制作获取所有文章列表标签 DTcms.Web.UI\La ...

  3. js获取元素的left和top值方法总结

    方法一: 使用obj.style.left和obj.style.top 该方法获取到的样式可读可写 但是这种方法有局限性,仅能获取行内样式中的left,right. 如果写在了style标签里,或者l ...

  4. 【ArcGIS遇上Python】python批量获取栅格数据四至(top,bottom,left,right)坐标代码

    上图所示为ArcGIS自带的影像数据,存放路径为C:\Program Files (x86)\ArcGIS\Desktop10.6\ArcGlobeData\wsiearth.tif",在源 ...

  5. python获取并解析电影评分Top 250的电影名称、评分和电影类型,并统计分析出哪些电影类型占比居多(最终结果显示剧情类型的电影占比最多)

    一.实现目标       python编写一个简易的爬虫程序,获取电影有史以来的电影评分最高的前250部电影的名称和评分,获取的数据存储到exce文件中.之后统计分析出哪些电影类型占比居多. 二.实现 ...

  6. swift iOS8 XIB 问题 ViewController.init() xib

    对于OC 中 ViewController *vc = [[ViewController alloc] init],方法默认会加载一个同名的xib文件当View.但是在swift中  ViewCont ...

  7. iOS 获取当前正在显示的视图控制器ViewController(最全)

    目录 先插入以下介绍以下本编文章除标题所讲知识外,还额外包含的内容有如下: 1.获取当前显示的视图控制器ViewController 2.如何在多次presentViewController后直接返回 ...

  8. iOS点滴- ViewController详解

    一.生命周期 当一个视图控制器被创建,并在屏幕上显示的时候. 代码的执行顺序 1. alloc                              创建对象,分配空间 2.init (initW ...

  9. viewController详解

    一.生命周期当一个视图控制器被创建,并在屏幕上显示的时候. 代码的执行顺序 1. alloc 创建对象,分配空间 2.init (initWithNibName) 初始化对象,初始化数据 3.load ...

  10. Extjs5.0(6):控制器(Controller、ViewController)和路由器(Router)

    控制器 上一篇文章我们已经为项目添加了左侧导航栏,接下来要为导航栏添加点击事件,点击左侧导航栏,右侧界面出现相应变化. 为组件添加事件,就要用到控制器了.Extjs5提供了两种控制器:Controll ...

最新文章

  1. Oracle备份恢复一(手动备份)
  2. 使用IDM下载,不适用默认浏览器下载
  3. c语言程序设计编程解读,【答题】C语言程序设计问题与解释实验
  4. python 多核并行计算_手把手 | 嫌Python太慢?并行运算Process Pools三行代码给你4倍提速!...
  5. Android功耗优化(7)---如何分析wakelock(wakeup source)持锁问题
  6. go var 一个整数_Go语言基础之基本数据类型
  7. 详细解读Python中的__init__()方法
  8. Cocos2dx之UI组件
  9. 预测控制matlab程序,预测控制matlab程序
  10. 文字栅格化剪切蒙版——创建文字遮罩效果的两种方法——梦幻游乐园
  11. PHP存储微信昵称特殊符号过滤方法
  12. 将背景为白色图片转为png格式的透明图片
  13. linux内核代码_解决Linux内核代码审阅者短缺的问题
  14. 什么是PR、什么是BD?
  15. 【矩阵论笔记】满秩分解
  16. Maven 上手指南
  17. Unity 2D角色动画状态切换
  18. rsync 命令_rsync命令教程示例
  19. OLTP与OLAP理解
  20. html引入let,let.html

热门文章

  1. java 各种数据结构,几种常见的数据结构的JAVA实现
  2. python整型变量化ascii_Python基础之基本数据类型
  3. oracle PS/SQL DEVELOPER
  4. Oracle中ORACLE_SID,INSTANCE_NAME,DB_NAME几个名词的区别
  5. 1731: [Usaco2005 dec]Layout 排队布局*
  6. Mysql + keepalived 实现双主热备读写分离
  7. Coder Essential之编程语言学习知识点纲要
  8. WPF开发时光之痕日记本(一)——富文本编辑器
  9. 谈谈Memcached与Redis(三)
  10. 鸿蒙系统30个G,鸿蒙系统升级,为何固定大小有5.9G,也有3点几G呢?