【发布时间】:2013-08-19 12:14:59
【问题描述】:
我有一个UIAlertView。当用户点击警报视图中的按钮时,我想显示一个新的UIViewController。
为了实现这一点,我需要知道哪个视图控制器当前在屏幕上可见,因为那个特定的视图控制器是展示新视图控制器的正确选择。
问题是我的应用中有一个复杂的视图控制器层次结构,包括UINavigationController 和UITabBarController(等等)。所以我不能简单地使用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