如何确定哪个视图控制器当前处于活动状态/显示视图的视图控制器?

时间:2012-06-29 03:16:44

标签: ios

在我的应用程序中,我正在排队一些本地通知,当他们开火我必须提供模态视图。问题是我有许多视图控制器,其中任何一个当前都可以是活动的,因此需要提供模态视图控制器。如何确定当前使用哪一个?

我正在将导航控制器设置为Windows根视图控制器,这可以推送任意数量的其他视图控制器,其中一些本身也可能正在以模态方式呈现另一个视图控制器。 这必须适用于iOS 4和5。

我有很多视图控制器,所以我们希望避免将每个视图中的代码放入每个检查中,如果它们当前是最顶层的。

2 个答案:

答案 0 :(得分:9)

您可以查看导航控制器的topViewController属性,找出哪个控制器位于堆栈顶部。这将是显示其视图的那个。

由于您可能还在展示一个模态视图控制器,您可能会对visibleViewController属性更感兴趣,它会为您提供当前视图的控制器,无论它是以模态方式呈现还是推送到导航堆栈

答案 1 :(得分:0)

创建一个变量,该变量存储指向最近推送的ViewController的指针。每次推送新的ViewController时,都要更新此变量。然后你总会知道哪一个在顶部!