visibleViewController不使用UINavigationController?

时间:2012-06-01 02:02:06

标签: ios uiviewcontroller uinavigationcontroller visible

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

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

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

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

谢谢!

2 个答案:

答案 0 :(得分:2)

如果使用addSubview:,则只能确定视图层次结构中的顶视图。您可以通过浏览根视图的子视图数组属性来确定顶视图

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

如果你想获得类似于visibleViewController的东西,你应该存储一个保持UIView和UIViewController之间关系的地图。所以你可以先得到topview,然后选择相应的视图控制器来获取visibleViewController。

祝你好运!

答案 1 :(得分:0)

有两种方式:

  1. 将子视图添加到viewcontroller中,然后使用下面的方法将一个放在前面:

    [self.view bringSubviewToFront:aView];

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

    self.window.rootViewController = self.viewController;