iOS基础(五)——获取当前控制器和获取当前UI控制器

1、获取当前控制器

-(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;
}

2、获取当前UI控制器

-(UIViewController *)getCurrentUIVC
{
    UIViewController  *superVC = [self getCurrentVC];
    
    if ([superVC isKindOfClass:[UITabBarController class]]) {
        
        UIViewController  *tabSelectVC = ((UITabBarController*)superVC).selectedViewController;
        
        if ([tabSelectVC isKindOfClass:[UINavigationController class]]) {
            
            return ((UINavigationController*)tabSelectVC).viewControllers.lastObject;
        }
        return tabSelectVC;
    }else
        if ([superVC isKindOfClass:[UINavigationController class]]) {
            
            return ((UINavigationController*)superVC).viewControllers.lastObject;
        }
    return superVC;
}

转载于:https://www.cnblogs.com/smileK/p/9554150.html

iOS小技能: 获取当前正在显示的控制器 前言 知识点: 程序进入前台:applicationDidBecomeActive 导航栏正在显示的子控制器:nav.visibleViewController TabVC 选中的控制器:selectedViewController code 程序进入前台:applicationDidBecomeActive #pragma mark - 程序进入前台 切换应用至当前应用的收款信息界面,主... 阅读详情

相关推荐

4、探索iOS用户界面设计:更多用户界面的乐趣

本博客深入探讨了iOS应用开发中多种用户界面控件的实现与使用方法,包括图像视图、滑块、文本字段、分段控件、开关按钮等。同时介绍了如何通过视图层次结构组织UI元素,设置获取控件值,以及使用动作表单警报与用户互动。此外,还涉及了多视图控制器的实现Core Data的数据持久化功能,帮助开发者掌握构建复杂且功能丰富应用的核心技能。

orange的博客 427

详解iOS 轻松获取当前控制器的正确方式

背景 在开发过程中,经常需要获取当前 window, rootViewController, 以及当前正在显示的 visibleController 的需求. 如果 .m 实现不是在当前视图情况下, 我们需要快速的获取当前控制器, 这种情况就需要先做好一层封装,我一般是通过 UIViewController 写的一个 Category 来实现, 实现起来也非常简单, 只需要我们对 控制器几个方法掌握便可。 获取控制器 + (UIViewController *)jsd_getRootViewController{ UIWindow* window = [[[UIApplicatio

iOS 获取当前的ViewController的方法

本篇文章主要介绍了iOS 获取当前的ViewController的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

OC获取当前UIViewController或者RootViewController

OC获取当前UIViewController或者RootViewController

weixin_46926959的博客 3331

iOS 获取当前页面控制器

    在开发过程中,我们经常需要获取当前 window, rootViewController, 以及当前 ViewController 的需求,来实现跳转或者其他业务需求. 如果 .m 实现不是在当前视视图情况下, 或者在子视图中,我们需要快速的获取当前控制器,.     我们想要与控制器无耦合的情况下, 想要直接获取当前控制器, 基本都是通过 rootViewController 来查...

baidu_25743639的专栏 3266

获取当前view所属的控制器 iOS

获取当前view所属的控制器

qq_38303453的博客 465

iOS 快速获取当前显示控制器的正确方式

文章目录背景获取控制器获取当前页面控制器presentedViewControllerpresentingViewControllermodalViewController参考资料与Dome 背景 在开发过程中,经常需要获取当前 window, rootViewController, 以及当前 ViewController 的需求. 如果 .m 实现不是在当前视图情况下, 我们需要快速的获取到当...

fangkong0601的博客 3029

iOS —— UI 初探

当然有,除了 presentViewController:animated:completion: 这种。

2402_86720949的博客 1915

iOS 7用户界面过渡指南

这位朋友整理的很到位,转至收藏,尊重别人的劳动成果,附上原文地址 转至:http://www.cocoachina.com/newbie/basic/2013/0703/6525.html 转至:http://www.cocoachina.com/newbie/basic/2013/0703/6526.html 第一部分 iOS 7用户界

ch_soft的专栏 3330

iOSUI学习——导航控制器、分栏控制器

分栏控制器下面的导航栏最多显示5个按钮,超过5个按钮,系统会自动将最后一个按钮替换成more,当点击more时,才可以看到其他的按钮,点开后,右上角有一个Edit按钮,点击可以看到所有的按钮,也可拖动改变前四个按钮展现的是什么视图。导航控制器负责控制导航栏(navigationBar),导航栏上的按钮叫UINavigationItem(导航元素项)。分栏控制器在同一界面最多显示5个控制器切换按钮,超过5个时会自动创建一个新的导航控制器来管理其余的控制器。:分栏控制器选中的控制器对象。:分栏控制器管理数组。

2301_79847748的博客 1665

iOS如何获取当前View所在控制器的方法

在开发iOS的时候经常需要获取当前View所在的控制器,下面小编给大家分享个方法,文章给出了示例代码,对大家的学习理解很有帮助,下面来一起看看吧。

iOS 7用户界面过渡指南(下):更新UI

本篇是 iOS 7用户界面过渡指南(下):更新UI 布局外观(Layout Appearance) 操作栏栏上按钮(Bars Bar Buttons) 内容视图(Content View) 控件(Controls) 临时视图(Temporary Views) 更新UI 布局外 更新UI 布局外观(Layout & Appearance) iOS 7给你的app布局UI带来了不少

code life 195

获取当前视图控制器present的控制器

利用present进入的视图控制器,在当前视图控制器获取present的视图控制器 self.presentingViewController 获取当前视图控制器presented的视图控制器 self.presentedViewController

Lu_Ca的博客 5566

视频教程-iOS UI实战-iOS

iOS UI实战 1999年开始从事开发工作,具备十余年的开发、管理培训经...

weixin_33990229的博客 280

iOS——UI——分栏控制器

首先什么是一个分栏控制器,在许多常用的app里,分栏控制器都是一个必不可少的控件,我们来看看它的样子。 这是QQ里的分栏控制器,我们可以通过不同的需求来确定不同视图的个数,通过分栏控制器来进行切换。然后我们来看它的代码实现: 对于新版的Xcode 我们不需要自己创建一个window,系统已经创建好了window,之前是在 AppDelegate.m文件里创建一个window并且创建一个根视图控制器,但现在SceneDelagate.m的文件里直接创建根视图控制器即可。 将他们的背景颜色改成不同的颜色便于区

m0_62386635的博客 793

iOS获取当前显示页面

UINavigationController 中有visibleViewControllertopViewController visibleViewController 当前显示的控制器 topViewController 是某个导航栈的栈顶视图 visibleViewController跟导航栈没有关系,只是当前显示的控制器,也就是说任意一个导航的visibleViewController所返回的值应该是一样的, topViewController 是某个导航栈的栈顶视图,导航控制器相关 换句话说.

kiss20的专栏 682

iOS导航控制器Segues

In this tutorial we’ll discuss and implement iOS UI Navigation Controller. It’s another common UI element that’s used as the base for many iOS apps. 在本教程中,我们将讨论并实现iOS UI导航控制器 。 这是另一个常见的UI元素,用作许多iOS应用程...

从零开始的教程世界 560
上一篇: iOS基础(四)——UIButton和UITableView
下一篇: iOS基础(六)——获取当前版本,比较更新版本
dddt2007
博客等级 码龄12年 0粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值