iOS 获得屏幕正在显示的Controller(自定义的控制器)的实用方法

在紧张的项目中,作者分享了一段用于获取iOS屏幕上当前显示的自定义Controller的代码,并提供了一个高效的字符串为空判断的宏定义。欢迎关注作者后续的学习分享,如有iOS相关知识需求,可以留言共同探讨。
摘要由CSDN通过智能技术生成

项目有点紧张,好久没有写点东西了。后面我会抽更多时间学习和分享学习的一些总结,分享给各位,请持续关注。


具体场景我都不说了。直接上代码

- (void)needShowLogin
{
    YPJGLoginViewController * login = [[YPJGLoginViewController alloc] init];
    login.hidesBottomBarWhenPushed = YES;
    UIViewController * VC = [self currentViewController];
    YPJGLog(@"当前显示的控制器%@",VC);
    //判断是否已经显示登录窗口,没有显示则push显示
    if (![[NSString stringWithUTF8String:object_getClassName(VC)] isEqual:[NSString stringWithUTF8String:object_getClassName(login)]])
    {
        [VC.navigationController pushViewController:login animated:YES];
    }
}
//获取Window当前显示的ViewController
- (UIViewController*)currentViewController{
    //获得当前活动窗口的根视图
    UIViewController* vc = [UIApplication sharedApplication].keyWindow.rootViewController;
    while (1)
    {
        //根据不同的页面切换方式,逐步取得最上层的viewController
        if ([vc isKindOfClass:[UITabBarController class]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值