访问当前活动显示的 UIViewController

Posted

技术标签:

【中文标题】访问当前活动显示的 UIViewController【英文标题】:Access currently active displayed UIViewController 【发布时间】:2012-07-11 12:07:31 【问题描述】:

每次我的应用程序收到 Pushnotification 时,我都想展示一个 ModalView。 收到通知后,我的应用会显示应用内的任何UIViewControllers。

我需要这个UIViewController 来打电话

[presentingViewController presentModalViewController:vc animated:YES];
// presentingViewController is what I need :)

有没有办法找出当前处于活动状态的 UIViewController?

我会知道如何做到这一点,例如UITabbarControllerUINavigationController,但我不能依赖其中任何一个的存在。

我也尝试通过

获取 rootViewController
[[[UIApplication sharedApplication] keyWindow] rootViewController]

并从那里展示 ModalView,但是 - 当然 - 它不会显示任何其他推送/显示的视图。

【问题讨论】:

【参考方案1】:

我认为最简单的方法是获取一个类型为 id 或 UIViewController 的全局变量,每次显示控制器时都会更新它。这样,您将始终拥有对当前控制器的引用。

希望这会有所帮助。

干杯!

【讨论】:

这种方法的问题是会触及课堂之外的其他代码,这是不可能的。

以上是关于访问当前活动显示的 UIViewController的主要内容,如果未能解决你的问题,请参考以下文章

OOAuthException:必须使用活动访问令牌来查询有关当前用户的信息

每秒从服务访问数据到地图活动

如何在活动中显示计时器?

facebook sdk:“必须使用活动访问令牌来查询有关当前用户的信息”

显示当前活动的圆点滑块

facebook Uncaught OAuthException:必须使用活动访问令牌来查询有关当前用户的信息