iOS 获取当前正在显示的ViewController
来源:互联网 发布:阿里云如何注销 编辑:程序博客网 时间:2024/06/06 12:50
适用范围,tabbar的子视图都是NavigationController,其它情况可以根据情况调整.
- (UIViewController *)getCurrentVC{ UIViewController *result = nil; UIWindow * window = [[UIApplication sharedApplication] keyWindow]; //app默认windowLevel是UIWindowLevelNormal,如果不是,找到UIWindowLevelNormal的 if (window.windowLevel != UIWindowLevelNormal) { NSArray *windows = [[UIApplication sharedApplication] windows]; for(UIWindow * tmpWin in windows) { if (tmpWin.windowLevel == UIWindowLevelNormal) { window = tmpWin; break; } } } id nextResponder = nil; UIViewController *appRootVC=window.rootViewController;// 如果是present上来的appRootVC.presentedViewController 不为nil if (appRootVC.presentedViewController) { nextResponder = appRootVC.presentedViewController; }else{ UIView *frontView = [[window subviews] objectAtIndex:0]; nextResponder = [frontView nextResponder]; <span style="font-family: Arial, Helvetica, sans-serif;">// 这方法下面有详解 </span> } if ([nextResponder isKindOfClass:[UITabBarController class]]){ UITabBarController * tabbar = (UITabBarController *)nextResponder; UINavigationController * nav = (UINavigationController *)tabbar.viewControllers[tabbar.selectedIndex];// UINavigationController * nav = tabbar.selectedViewController ; 上下两种写法都行 result=nav.childViewControllers.lastObject; }else if ([nextResponder isKindOfClass:[UINavigationController class]]){ UIViewController * nav = (UIViewController *)nextResponder; result = nav.childViewControllers.lastObject; }else{ result = nextResponder; } return result;}
0 0
- iOS 获取当前正在显示的ViewController
- iOS 获取当前正在显示的ViewController
- iOS 获取当前正在显示的ViewController
- ios-获取当前正在显示的ViewController
- iOS 获取当前正在显示的ViewController
- iOS 获取当前正在显示的ViewController
- iOS 获取当前正在显示的ViewController
- iOS 获取当前正在显示的ViewController
- iOS 获取当前正在显示的ViewController
- iOS 获取当前正在显示的ViewController
- iOS 获取当前正在显示的ViewController
- iOS 获取当前正在显示的ViewController
- iOS 获取正在显示的ViewController
- iOS 获取当前正在显示的ViewController或者当前的PresentedViewController
- iOS开发 获取当前正在显示的ViewController(包含Push的和presented的)
- iOS 获取当前屏幕显示的viewcontroller
- iOS //获取当前屏幕显示的viewcontroller
- iOS-获取当前屏幕显示的ViewController
- Centos7 关闭防火墙
- 【转】Qt之界面实现技巧
- Linux常用命令
- 优化 SQL SELECT 语句性能的 6 个简单技巧
- Mac如何开启关闭隐藏文件
- iOS 获取当前正在显示的ViewController
- a04#安装office 64位2013基础版提示机器存在32位office卸载未完全
- MySQL-DCL篇
- 操作系统 进程管理之进程与线程
- Excel解决格式与文件扩展名不一致的两种方法
- Oozie 安装部署
- 【并查集】并查集详解(转)
- 从零开始搭建maven+springmvc+mybatis web项目(1)---maven项目目录创建
- VC模拟鼠标的两种方式(SendMessage、mouse_event)