获取最后显示的视图控制器

Posted

技术标签:

【中文标题】获取最后显示的视图控制器【英文标题】:Getting last shown view controller 【发布时间】:2014-03-12 21:04:25 【问题描述】:

是否可以在 AppDelegate 中

- (void)applicationDidBecomeActive:(UIApplication *)application;

感谢您的回答=)

【问题讨论】:

当您从后台返回时,或当您启动应用程序时? 当我从后台回来时 【参考方案1】:

如果你的rootViewControllerUINavigationController,你可以得到是topViewController

 UINavigationController *nav = 
  (UINavigationController *)[[self window] rootViewController];
 [nav.topViewController view].backgroundColor = [UIColor redColor];

如果你有一个UITabBarController 作为rootViewController

 UITabBarController *nav = 
  (UITabBarController *)[[self window] rootViewController];
 [nav.selectedViewController view].backgroundColor = [UIColor redColor];

【讨论】:

当然不是,root就是root!在 99% 的时间里,root 是一个 navigationController 或一个 TabBarController,所以我们可以向这个“nav”询问当前选择/显示的 ViewController。现在,如果您通过代码推送模态 VC,则此代码不起作用。 没错!而我需要的是知道当前......但我怎样才能得到它? 我给你例子:nav.topViewControllernav.selectedViewController(取决于根类型)

以上是关于获取最后显示的视图控制器的主要内容,如果未能解决你的问题,请参考以下文章

视图控制器未正确显示

如何识别单个视图控制器中的最后一个视图?

标签栏控制器显示最后推送的控制器 - swift 4

Swift - 手动转换后关闭最后一个视图控制器

如何在视图控制器中显示从 JSON 获取的数据

如何在firebase(swift)中获取子节点的值,并将其显示在视图控制器的标签中