1

在我的应用程序中,我只是使用典型的 UIViewController 方法来切换视图。我没有使用 UINavigationController。但是,我确实需要使用 UINavigationController 拥有的 visibleViewController API。

不,我也无法将我的项目转换为使用 UINavigationController。有什么方法可以检查我的应用程序中的另一个 UIViewController 是否是当前可见的控制器?

我现在使用 addSubview 和 hidden 属性切换视图。(我知道这不是切换视图的正确方法)。

无论如何,在我的情况下,是否可以做类似于 visibleViewController 的事情?

谢谢!

4

2 回答 2

2

如果您使用 addSubview:,则只有一种方法可以确定视图层次结构中的顶视图。您可以通过探索根视图的子视图数组属性来确定顶视图

UIView *topview = [[rootview subviews] lastObject];

如果你想获得类似于 visibleViewController 的东西,你应该存储一个地图来保持 UIView 和 UIViewController 之间的关系。所以可以通过先获取topview,再获取对应的view controller来获取visibleViewController。

祝你好运!

于 2012-06-01T02:28:06.993 回答
0

有2种方式:

  1. 将子视图添加到视图控制器中,然后使用以下方法将其置于前面:

    [self.view带来SubviewToFront:aView];

  2. 您可以在 appDelegate 中保留视图控制器的实例,然后使用以下代码将其中之一设置为 rootViewController:

    self.window.rootViewController = self.viewController;

于 2012-06-01T02:50:10.917 回答