当前位置:首页 > 技术心得 > 正文内容

iOS 获取当前正在显示的ViewController

xjtudll11年前 (2015-08-16)技术心得11600

我们在非视图类中想要随时展示一个view时,需要将被展示的view加到当前view的子视图,或用当前view presentViewController,或pushViewContrller,这些操作都需要获取当前正在显示的ViewController。


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

参考资料:


扫描二维码推送至手机访问。

版权声明:本文由鸟的天空发布,如需转载请注明出处。

本文链接:http://www.xjtudll.cn/Exp/364/

标签: ios
分享给朋友:

“iOS 获取当前正在显示的ViewController” 的相关文章

Protel99SE高级规则设定

Protel99SE高级规则设定

1、Protel99SE高级间距规则 Protel99SE间距规则是在Rules里面设置的,通常我们只是设置整个PCB的间距,实际上我们可以单独设置各类间距,比如覆铜间距,过孔与过孔间距,焊盘到焊盘间距,焊盘到过孔间距等等。 Design->Rules->Routing->Clea...

Storyboard已关联下面的TableView,为什么TabView的Cell显示不出来

问题: Storyboard已关联下面的TableView,为什么TabView的Cell显示不出来 原因及解决办法: 很简单,你的代码没有设置,SB里面的TableViewController要关联一个类,你需要添加好,并且注意下面这两个代理方法的返回值 - (NSInteger)numberO...

Protel99SE恢复隐藏的Part Type

Protel99SE恢复隐藏的Part Type

相信这个问题大家或多或少碰到过,在用Protel99SE设计原理图的时候,隐藏了元件的Part Type属性,后来想恢复,却发现没辙了。Protel99SE里面确实没有直接的方法来恢复隐藏的Part Type,只能是曲线救国了。呵呵。 1、Tools->Preferences->Def...

C#获取文件全路径、目录、扩展名、文件名称

class Program     {         static void Main(string[] args)       &nbs...

WinRAR创建自解压程序

WinRAR创建自解压程序

前面提到了用FilePacker来打包文件夹(http://www.xjtudll.cn/Exp/63/),这次介绍的是用WinRAR来创建自解压程序,从而实现发布单文件程序的目的。当然,你也可以另作他用。WinRAR相当普及,几乎人人电脑上都有。如何用WinRAR创建自解压程序呢?且看下面分解。1...

MDI程序中MenuStip控件的MDIWindowListItem

MDI程序中MenuStip控件的MDIWindowListItem

要求: 在主窗体中的“Windows”菜单里,能够显示所有已经打开的子窗体Title,并且点击后能够把相应窗体激活到最前面。 .net 2.0中,在MenuStip控件中提供了MDIWindowListItem属性。只要把想要显示子窗口列表的menu控件设置上就Ok了。...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。