1. //获取当前屏幕显示的viewcontroller
  2. - (UIViewController *)getCurrentVC
  3. {
  4. UIViewController *result = nil;
  5.  
  6. UIWindow * window = [[UIApplication sharedApplication] keyWindow];
  7. if (window.windowLevel != UIWindowLevelNormal)
  8. {
  9. NSArray *windows = [[UIApplication sharedApplication] windows];
  10. for(UIWindow * tmpWin in windows)
  11. {
  12. if (tmpWin.windowLevel == UIWindowLevelNormal)
  13. {
  14. window = tmpWin;
  15. break;
  16. }
  17. }
  18. }
  19.  
  20. UIView *frontView = [[window subviews] objectAtIndex:];
  21. id nextResponder = [frontView nextResponder];
  22.  
  23. if ([nextResponder isKindOfClass:[UIViewController class]])
  24. result = nextResponder;
  25. else
  26. result = window.rootViewController;
  27.  
  28. return result;
  29. }
  1. .获取当前屏幕中present出来的viewcontroller
  2.  
  3. - (UIViewController *)getPresentedViewController
  4. {
  5. UIViewController *appRootVC = [UIApplication sharedApplication].keyWindow.rootViewController;
  6. UIViewController *topVC = appRootVC;
  7. if (topVC.presentedViewController) {
  8. topVC = topVC.presentedViewController;
  9. }
  10.  
  11. return topVC;
  12. }
  1. func rootViewCon() -> UIViewController {
  2.  
  3. var topVC = UIApplication.shared.keyWindow?.rootViewController
  4. while topVC?.presentedViewController != nil {
  5. topVC = topVC?.presentedViewController!
  6. }
  7.  
  8. return topVC!
  9. }

iOS 获取当前正在显示的ViewController的更多相关文章

  1. 获取手机当前显示的ViewController

    //获取手机当前显示的ViewController - (UIViewController*)currentViewController{ UIViewController* vc = [UIAppl ...

  2. iOS获取窗口当前显示的控制器

    解决类似网易新闻客户端收到新闻推送后,弹出一个UIAlert,然后跳转到新闻详情页面这种需求 1.提供一个UIView的分类方法,这个方法通过响应者链条获取view所在的控制器 - (UIViewCo ...

  3. IOS 获取的时间显示为NAN 解决方法

    var regTime= item.BeginDate.replace(/\-/g, "/"); ------ item.BeginDate 我的日期年月日的    (/\-/g, ...

  4. IOS获取物理尺寸中7Plus中获取的是7的物理尺寸

    IOS获取物理尺寸中7Plus中获取的是7的物理尺寸: 在开发调试过程中我的7Plus手机获取[uiscreen mainscreen].bounds为750  .1334. 解决方案:在手机中的显示 ...

  5. iOS学习笔记(六)——ViewController

    ViewController是iOS应用程序中重要的部分,是应用程序数据和视图之间的重要桥梁,ViewController管理应用中的众多视图.iOS的SDK中提供很多原生ViewController ...

  6. iOS获取设备唯一标识的8种方法

    8种iOS获取设备唯一标识的方法,希望对大家有用. UDID UDID(Unique Device Identifier),iOS 设备的唯一识别码,是一个40位十六进制序列(越狱的设备通过某些工具可 ...

  7. js获取当前时间显示在页面上

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  8. iOS 获取文件的目录路径的几种方法 [转]

    iOS 获取文件的目录路径的几种方法 2 years ago davidzhang iphone沙箱模型的有四个文件夹,分别是什么,永久数据存储一般放在什么位置,得到模拟器的路径的简单方式是什么. d ...

  9. iOS获取设备型号、装置类型等信息

    iOS获取设备型号.设备类型等信息 设备标识 关于设备标识,历史上盛行过很多英雄,比如UDID.Mac地址.OpenUDID等,然而他们都陆陆续续倒在了苹果的门下.苹果目前提供了2个方法供App获取设 ...

随机推荐

  1. grid 操作实例

    1.下载selenium server 地址http://www.seleniumhq.org/download 2.这里以2.44.0.jar为例+windows 平台+在一台主机上运行 3.cmd ...

  2. CentOS6启动流程

    CentOS6启动流程 1.加载BIOS的硬件信息,获取第一个启动设备 在通电之后,CentOS6会进行加电自检(Power On Self Test),这个过程主要是由BIOS完成的.在自检完毕,会 ...

  3. mysql创建存储过程,批量建表分表00到99

    这里以sqlyong为软件示例: --创建存储过程DELIMITER $$ CREATE PROCEDURE `createTablesWithIndex`() BEGIN DECLARE `@i` ...

  4. MSSQL2012中SQL调优(SQL TUNING)时CBO支持和常用的hints

    虽然当前各关系库CBO都已经非常先进和智能,但因为关系库理论和实现上的限制,CBO在特殊场景下也会给出次优甚至存在严重性能问题的执行计划,而这些场景中,有一部分只能或适合通过关系库提供的hints来进 ...

  5. 【转】SQLServer汉字转全拼音函数

    USE Test go IF OBJECT_ID('Fn_GetQuanPin','Fn') IS NOT NULL DROP FUNCTION fn_GetQuanPin go create fun ...

  6. Vue 使用 vuelidate 实现表单验证

    表单验证的应用场景十分广泛,因为网站对用户输入内容的限制是非常必要的. 在vue中,我们使用vuelidate方便地实现表单验证. 官方文档在这里https://monterail.github.io ...

  7. for循环的字节码

    源代码: public class Wizard { private int age; private void forCycle() { for (int i = 0; i < 10; i++ ...

  8. git reset --hard 恢复

    git reset --hard ,再然后,悲剧上演~ 恢复方法: 使用 git reflog 来找到最近提交的信息,这里贴出部分信息: F:\voidy>git reflog WARNING: ...

  9. X-Window/GNOME/KDE的关系

    名称 开发者 开发年份 许可证 语言 说明 X-Window MIT 1984     X-Window是一个C/S架构的桌面框架,KDE和GNOME都是其基础上的具体实现 KDE Trolltech ...

  10. vmware自定义网段

    vmware会自动随机给分配192.168下的一个C段作为虚拟网卡(如VMnet8)的网段. 有时我们可能不想使用随机分配的网段而想使用指定网段 注意:配置成新网段后VMware会认为所有IP都没分配 ...