Objective-C:来自App Delegate的当前视图控制器

时间:2013-06-17 19:48:10

标签: objective-c modal-dialog

我想从app delegate中呈现一个出现在所有内容之上的视图控制器,包括打开的任何模态视图。

当推送通知到达时,我会这样做。

test *fixtureViewController = [[test alloc] init];

[self.window.rootViewController presentViewController:testViewController animated:YES completion:nil];

但是如果从另一个视图控制器激活模态视图,则这不起作用。

有什么想法吗?

3 个答案:

答案 0 :(得分:7)

试试这个:

+ (UIViewController*) topMostController {
    UIViewController *topController = [[[[UIApplication sharedApplication] delegate] window] rootViewController];
    while (topController.presentedViewController) {
        topController = topController.presentedViewController;
    }
    return topController;
}

使用此方法,您可以找到当前活动的视图控制器。

祝你好运

答案 1 :(得分:0)

您可能必须使用活动视图控制器来显示此视图,并让每个视图在活动时侦听通知。你在使用故事板吗?然后你可以这样做。我没试过这个,所以我不是积极的。

答案 2 :(得分:0)

不确定您的代码是如何完成的,但这些是您可以发送到视图的一些消息;

[[view superview] bringSubviewToFront:testViewController];
[[view superview] sendSubviewToBack:testViewController];

[testViewController sendToBack];
[testViewController bringToFront];