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

解决方案 »

  1.   

    没记错的话self.navigationController.viewcontrollers 这应该是一个数组 当前的控制器应该就是对应着数组下标最大值的
      

  2.   

    你这种情况是window.rootViewController是一个navigationController,再获得视图控制器
      

  3.   

    如果从标签栏中一个中间按钮,表情该按钮没有对应的viewcontroller,只是单纯的按钮,怎么直接push到另一个页面,???急,谢谢
      

  4.   

    当前页面的 控制器 就是   self,不是当前页面 是导航栏就是navigation。controllers  或者你申明的属性
      

  5.   

    我来翻译一下,其实我也遇到了类似的需求。应该是在没办法引用self的地方,但又需要使用当前控制器,比如说在类方法中。
      

  6.   

    //获取当前屏幕显示的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;  
    }
      

  7.   

    现在,需要写一个sdk,用来统计一个应用程序当前点击滑动的页面,我用上面的代码没有用啊
    怎么解决,大神