我想从app delegate中呈现一个出现在所有内容之上的视图控制器,包括打开的任何模态视图。
当推送通知到达时,我会这样做。
test *fixtureViewController = [[test alloc] init];
[self.window.rootViewController presentViewController:testViewController animated:YES completion:nil];
但是如果从另一个视图控制器激活模态视图,则这不起作用。
有什么想法吗?
答案 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];