从app delegate呈现视图控制器

use*_*438 25 objective-c uiviewcontroller ios appdelegate

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

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

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

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

Wri*_*sCS 49

你也可以尝试:

[[[UIApplication sharedApplication] keyWindow] rootViewController]
Run Code Online (Sandbox Code Playgroud)

我怎么用它:

#define ROOTVIEW [[[UIApplication sharedApplication] keyWindow] rootViewController]
[ROOTVIEW presentViewController:interstitialViewController animated:YES completion:^{}];
Run Code Online (Sandbox Code Playgroud)


Kev*_*OUX 10

Swift 3版本用于检查响应:

UIApplication.shared.keyWindow?.rootViewController
Run Code Online (Sandbox Code Playgroud)


Jon*_*ann 6

Swift 5 及以上

检查这个:

UIApplication.shared.windows.first?.rootViewController
Run Code Online (Sandbox Code Playgroud)