【问题标题】:Present view controller from app delegate从应用委托呈现视图控制器
【发布时间】:2013-10-26 21:33:18
【问题描述】:

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

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

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

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

【问题讨论】:

标签: ios objective-c uiviewcontroller appdelegate


【解决方案1】:

你也可以试试:

[[[UIApplication sharedApplication] keyWindow] rootViewController]

我如何使用它:

#define ROOTVIEW [[[UIApplication sharedApplication] keyWindow] rootViewController]
[ROOTVIEW presentViewController:interstitialViewController animated:YES completion:^{}];

【讨论】:

  • 具有相同的行为。仅适用于初始视图控制器。如何获取当前的导航控制器并从那里呈现视图?
  • @Yar,这是不好的做法。
【解决方案2】:

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

UIApplication.shared.keyWindow?.rootViewController

【讨论】:

    【解决方案3】:

    Swift 5 及更高版本

    检查一下:

    UIApplication.shared.windows.first?.rootViewController
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-25
      • 1970-01-01
      • 2012-07-09
      • 2016-06-10
      • 2021-03-12
      • 1970-01-01
      相关资源
      最近更新 更多