29

我正在尝试使用以下代码从应用程序委托中呈现视图控制器:

- (void)interstitialViewControllerRequestSucceeded:(UIViewController *)interstitialViewController
{
    [self.window.rootViewController presentViewController:(UIViewController *)interstitialViewController animated:YES completion:NULL];
}

它将在初始视图控制器上显示插页式广告,但不会在其他视图控制器上显示。我希望它显示在每个连接到导航控制器的人身上。

如何修改此代码以实现该目标?

4

3 回答 3

53

你也可以试试:

[[[UIApplication sharedApplication] keyWindow] rootViewController]

我如何使用它:

#define ROOTVIEW [[[UIApplication sharedApplication] keyWindow] rootViewController]
[ROOTVIEW presentViewController:interstitialViewController animated:YES completion:^{}];
于 2013-10-18T06:24:51.700 回答
11

用于检查响应的 Swift 3 版本:

UIApplication.shared.keyWindow?.rootViewController
于 2017-02-01T15:47:41.500 回答
8

斯威夫特 5 及更高版本

检查这个:

UIApplication.shared.windows.first?.rootViewController
于 2019-11-21T09:38:22.020 回答