iOS获取当前屏幕的视图控制器

- (UIViewController *)getCurrentVC

{

UIViewController *result = nil;

UIWindow * window = [[UIApplication sharedApplication] keyWindow];

if (window.windowLevel != UIWindowLevelNormal)

{

NSArray *windows = [[UIApplication sharedApplication] windows];

for(UIWindow * tmpWin in windows)

{

if (tmpWin.windowLevel == UIWindowLevelNormal)

{

window = tmpWin;

break;

}

}

}

UIView *frontView = [[window subviews] objectAtIndex:0];

id nextResponder = [frontView nextResponder];

if ([nextResponder isKindOfClass:[UIViewController class]])

result = nextResponder;

else

result = window.rootViewController;

return result;

}

时间: 2024-08-27 13:47:03

iOS获取当前屏幕的视图控制器的相关文章

获取Storyboard中的视图控制器

storyboard对于框架的构建是一个非常方便的工具,我们经常需要在storyboard中获取我们指定的视图控制器,那么要怎么获取呢? 方法如下: 第一步:选中视图,为视图自定义一个Storyboard ID 第二步:获取视图

iOS基础之UITabBarController(标签视图控制器)

UITabBarController是可以帮我们添加.管理许多的标签项,使我们的程序包含不同的操作模式,由于管理UITabBar可能比较麻烦,系统帮我们对其进行了封装,产生了简单好用的UITabBarController--标签视图控制器. 代码演示: #import "AppDelegate.h" #import "FirstViewController.h" #import "SecondViewController.h" #import &

IOS中在自定义控件(非视图控制器)的视图跳转中 代理方法与代码块的比较

//代码块与代替代理的设计方法 我就以在自定义视图中(非视图控制器,不能实现视图控制功能),通过代理和代码块两种方法分别实现视图的跳转,进行对比 首先自定义了一个视图,上面有一个已经注册了得BUtton点击监控事件方法-(void)event{};视图的跳转就在这个方法中实现(注意:这个button不在视图控制器里面,就算导了相关头文件,也不能跳转,所以只能通过代理方法,或者代码块等,在这个button(在自定义控件空,非视图控制器)方法中调用相关方法,在视图控制器中去实现) 代理实现方法: 在

iOS中的UITabBarController(标签视图控制器)

#import "AppDelegate.h" #import "FirstTableViewController.h" #import "SecondTableViewController.h" #import "ThirdTableViewController.h" #import "FourthTableViewController.h" #import "FiveTableViewCont

iOS 视图控制器转场详解

前言的前言 唐巧前辈在微信公众号「iOSDevTips」以及其博客上推送了我的文章后,我的 Github 各项指标有了大幅度的增长,多谢唐巧前辈的推荐.有些人问我相关的问题,好吧,目前为止就几个,由于没有评论系统,实在不方便交流,但我也没把博客好好整理,一直都在简书上写博客,大家有问题请移步我的简书本文章的页面.关于交流,我想说这么几点: 1.问问题就好,不要加上大神大牛之类的称呼,与本文有关的问题我尽量回答:不负责解析转场动画,看心情回答. 2.去我的简书下留言是最有效的交流方式,要加我好友就

Swift - iOS中各种视图控制器(View Controller)的介绍

在iOS中,不同的视图控制器负责不同的功能,采用不同的风格向用户呈现信息.下面对各个视图控制器做个总结: 1,标准视图控制器 - View Controller 这个控制器只是用来呈现内容.通常会用来作为子类,以向屏幕中添加逻辑. 2,导航控制器 - Navigation Controller 这个控制器呈现一个视图控制器的栈,应用程序可以在上面推入更多的视图控制器. 当新视图推入栈,或旧视图弹出栈时,导航控制器会以动画的形式(比如卷动)显示隐藏这些视图. 使用样例:系统“设置”应用程序 3,表

视图控制器

?.?定义视图(label-textField组合视图 LTView) ?定义视图:系统标准UI之外,??组合?出的新的视图. ?定义LTVie━使?了?种设计模式:复合设计模式. 复合设计模式:A类中,使?B类(或者更多类)作为??的成员(实 例变量). iOS新控件往往都是?已有控件组 合?成的. 1.新建一个空模板的工程,将环境配置为MRC,四步走     2.新建一个视图控制器,将此视图控制器指定为window的根视图控制器     3.自定义视图LTView,明确LTView内部的控件

UI_03 ?定义视图、视图控制器

?.?定义label-textField视图 自定义LTView类,封装UILabel与UITextField,实现快速创建以下类型的视图 **** 使用UIView子类实现 **** LTView.h #import <UIKit/UIKit.h> @interface LTView : UIView @property (nonatomic, retain)UILabel * label; @property (nonatomic, retain)UITextField * textFie

iOS 获取当前界面所在的视图控制器

当前界面所在的视图控制器 逐步完善的过程 一. //获取当前屏幕显示的viewcontroller (这里面获取的相当于rootViewController) - (UIViewController *)getCurrentVC { UIViewController *result = nil; UIWindow * window = [[UIApplication sharedApplication] keyWindow]; if (window.windowLevel != UIWindow