技术CTO-关注编程入门知识,提供编程入门教程

您的位置: 首页 > 移动开发 > ios > 正文

ios 获取当前显示页面的控制器

来源: 技术CTO 阅读:

经常要显示第三方写的页面,为了提供一个视图控制器,怎么获得当前页面的控制器,即是在哪里调用了别人了写的页面

没记错的话self.navigationController.viewcontrollers 这应该是一个数组 当前的控制器应该就是对应着数组下标最大值的
你这种情况是window.rootViewController是一个navigationController,再获得视图控制器
如果从标签栏中一个中间按钮,表情该按钮没有对应的viewcontroller,只是单纯的按钮,怎么直接push到另一个页面,???急,谢谢
当前页面的 控制器 就是   self,不是当前页面 是导航栏就是navigation。controllers  或者你申明的属性
“获取当前页面的控制器”,这句话最好描述清楚了,不然的话没人明白你指的是什么。你总要说明你在什么位置要获取当前控制器? 
我来翻译一下,其实我也遇到了类似的需求。应该是在没办法引用self的地方,但又需要使用当前控制器,比如说在类方法中。
//获取当前屏幕显示的viewcontroller
- (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;  
}
大神,真的有效果.这下想在哪个文件跳到哪就跳到哪,妈妈再也不用担心我的跳转
现在,需要写一个sdk,用来统计一个应用程序当前点击滑动的页面,我用上面的代码没有用啊
怎么解决,大神

^_^ 如果您热爱技术、热爱编程,想与更多的朋友一起交流学习,欢迎加入本站官方QQ群:345733473 ^_^