【问题标题】:Get a reference to the currently visible view controller获取对当前可见视图控制器的引用
【发布时间】:2013-08-19 12:14:59
【问题描述】:

我有一个UIAlertView。当用户点击警报视图中的按钮时,我想显示一个新的UIViewController

为了实现这一点,我需要知道哪个视图控制器当前在屏幕上可见,因为那个特定的视图控制器是展示新视图控制器的正确选择。

问题是我的应用中有一个复杂的视图控制器层次结构,包括UINavigationControllerUITabBarController(等等)。所以我不能简单地使用self.visibleViewController 来获取当前可见的视图控制器。

我找到了possible solution on Stackoverflow,但我想找到一个更简洁的解决方案,而不必深入研究整个视图控制器堆栈。

【问题讨论】:

  • 我不确定这是否有效,我还没有测试过,但是如果你正在创建一个 UIAlertView 并在最后一个可见的 UIViewController 中呈现它,这并不意味着“委托" 那个 UIAlertView 是你最后一个可见的视图控制器?
  • 我有点困惑。您必须在某处设置 UIAlertView 的代码。你在哪个 ViewController 上设置了?
  • UIAlertView 的代表不一定是UIViewController。它可以是任何符合UIAlertViewDelegate 协议的类。在我的例子中,代表实际上是一个UIViewController,但它是一个特定的,并不总是可见的。
  • @Puneet:UIAlertView 不一定由特定的UIViewController 提供。相反,我使用[alertView show]。我可以从代码中的任何位置调用该方法,因为 UIAlertView always creates its own window.

标签: ios uiviewcontroller


【解决方案1】:

UINavigationController 有一个名为topViewController 的属性。 也许对你有帮助。

【讨论】:

  • 我需要一个不依赖于视图控制器类型的解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多