最顶级的视图控制器类

时间:2014-07-31 10:56:03

标签: ios objective-c uinavigationcontroller

我一直在尝试在我的应用程序中找到最顶级的视图控制器类,我现在正在做的是

我已在我的应用中指定了UINavigationController作为根视图控制器。然后在第一个视图中我提出了另一个UINavigationController,以便我可以执行注册和忘记密码等操作。

我想检查当前在屏幕上显示的视图控制器的类。

我如何实现这一点,我已经在谷歌和这个网站上检查了各种方法 请为我提供一些先机。

2 个答案:

答案 0 :(得分:0)

试试这个:

id _vc = [[[UIApplication sharedApplication].delegate window] rootViewController];
if ([_vc isKindOfClass:[UINavigationController class]])
{
    UINavigationController* _nc = (UINavigationController*)_vc;
    if ([[_nc.viewControllers lastObject] isKindOfClass:[ViewController class]])
    {
        // view controller is right
    }
}

答案 1 :(得分:0)

如果UINavigationControllerrootViewController的{​​{1}},则您拥有属性window女巫是与导航中当前可见视图相关联的视图控制器接口

UINavigationController

编辑:

我已经提交了另一个visibleViewController,您可以使用UINavigationController的{​​{1}}属性返回由此视图控制器或其祖先之一呈现的视图控制器在视图控制器层次结构中

UIViewController

像这样(代码未编译):

presentedViewController例如:

UIViewController