UI基础 获取当前屏幕显示的viewcontroller

1 #pragma mark - 获取当前屏幕显示的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:0];
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 }

如果想进行push和pop,需要将调用方法得到的返回值强制类型转换为UINavigationController类型
1 UINavigationController *NC = (UINavigationController *)[self getCurrentVC];
2 [NC popViewControllerAnimated:YES];
时间: 2024-08-03 18:53:28

UI基础 获取当前屏幕显示的viewcontroller的相关文章

获取当前屏幕显示的viewcontroller

//获取当前屏幕显示的viewcontroller - (UIViewController *)getCurrentVC { UIViewController *result = nil; UIWindow * window = [[UIApplication sharedApplication] keyWindow]; if (window.windowLevel != UIWindowLevelNormal) { NSArray *windows = [[UIApplication shar

iOS开发——获取当前屏幕显示的viewcontroller

获取当前屏幕显示的viewcontroller,然后想怎么跳就怎么跳. - (UIViewController *)getCurrentVC { UIViewController *result = nil; UIWindow * window = [[UIApplication sharedApplication] keyWindow]; if (window.windowLevel != UIWindowLevelNormal) { NSArray *windows = [[UIApplic

获取当前显示的ViewController

//获取当前屏幕显示的viewcontroller  - (UIViewController *)getCurrentVC  {      UIViewController *result = nil;             UIWindow * window = [[UIApplication sharedApplication] keyWindow];      if (window.windowLevel != UIWindowLevelNormal)      {          N

ios开发-UI基础-超级猜图

[注意]转载时请注明出处博客园-吃唐僧肉的小悟空http://www.cnblogs.com/hukezhu/ 本篇文章介绍一个比较综合的小应用----超级猜图. 功能分析: 根据显示的图片,在下面的待选项按钮中选中正确答案按钮,选中的按钮会显示在正确答案按钮中 答案错误,答案颜色变为红色,分数减小 答案正确,答案颜色变为蓝色,两秒自动跳入下一题,分数增加 点击"下一题"可以进入下一个题目 点击"大图",可以放大显示图片,再次点击图片或者背景,图片缩小至原来大小 点

ios开发-UI基础-应用管理(单纯界面)改进5-使用代理实现监听下载按钮的点击(delegate)

[注意]转载时请注明出处博客园-吃唐僧肉的小悟空http://www.cnblogs.com/hukezhu/ 前几篇文章介绍了一个应用管理的小应用,从最开始的单纯实现功能,一步一步就行改进\封装,上篇文章是使用xib进行了优化,本篇文章使用代理实现监听下载按钮的点击. 在原来的基础上,使用代理的主要思路分析: 首先要新建一个协议 声明协议的要实现的方法(一般为optional) 声明一个遵守该协议的代理的属性 使用代理,通知其代理完成操作 在代理中的实现步骤: 遵守协议 设置代理(一般通过拖线

iOS开发UI基础—字典转模型(部分内容转载他人)

iOS开发UI基础-字典转模型 开发中,通常使用第三方框架可以很快的实现通过字典转模型,通过plist创建模型,将字典的键值对转成模型属性,将模型转成字典,通过模型数组来创建一个字典数组,通过字典数组来创建一个模型数组等等. 一.能完成功能的"问题代码" 1.从plist中加载的数据 2.实现的代码 1 // 2 // LFViewController.m 3 // 03-应用管理 4 // 5 // Created by apple on 14-5-22. 6 // Copyrigh

ios开发-UI基础-应用管理(单纯界面)改进2

本篇文章,通过字典转模型来改进上篇文章中的代码. 字典转模型,之前的文章已经介绍过,这里再重复一下:  字典转模型 字典:用来存储数据的,用键值对存储数据,是一个nsdictionary ,(不好处:key值容易写错) 模型: 用来存储数据的,一个字典对应一个模型,模型用属性来存储数据,是一个纯洁的object对象 @property(nonatomic,copy)NSString *name; @property(nonatomic,copy)NSString *icon; 字典转模型:一个字

ios开发-UI基础-应用管理(单纯界面)改进4-xib封装

[注意]转载请注明出处:吃唐僧肉的小悟空http://www.cnblogs.com/hukezhu/ 上篇文章结尾介绍了一下为什么要对xib进行封装,这里不再赘述. 大体整理了一下封装的思路(我自己的想法,可能不是很清晰): 为了扩展,将xib的代码封装,创建一个类,来描述xib >在新建的.m文件中,新建一个类扩展(类似于viewController) >在新建的.h文件中,加入一个模型的属性(@class) >在新建的.m文件中,重写模型的set方法(在.h文件中已经加入了,自动生

UI基础控件UIButton

一:UI基础 Button控件 1,简单说明:UIView和UIViewController间的关系 一个应用并不一定要有UIViewController,但是为了管理界面事件(比如按钮点击事件)一般我们在创建应用时要先创建控制器,控制器拥有一个UIView属性. UIView用来展示数据.及用户输入数据.监听事件的触发(比如按钮的touchupinside事件) 而控制可以用来处理这些事件,赋值UIView的管理. 按钮可以展示文字和图片,也就是说按钮具有这些属性. 2,按钮的三种状态 nor