如何在不知道哪个视图的情况下添加UIView作为最顶层视图的子视图?

时间:2013-06-05 19:56:37

标签: ios objective-c cocoa-touch uiview subview

我想添加一个视图:

[aView addSubview:myNewView];

我要做的是找到哪个视图是在任何给定时刻显示的最顶层视图,因此我可以在其上动态添加视图。例如,假设我的视图堆栈如下所示:

  1. 模态相机视图(位于所有内容之上,当前正在显示)
  2. TabView的
  3. 导航视图
  4. 查看
  5. 的TableView
  6. 我想动态地将任何视图置于0之上。

    有谁知道如何做到这一点,或者甚至可能?

1 个答案:

答案 0 :(得分:3)

视图层次结构不是由堆栈表示,而是由树表示,因此没有the topmost view

如果您只是想在所有其他观看次数之上添加视图,请将其添加到UIWindow,如this answer中所述:

UIWindow* mainWindow = [[UIApplication sharedApplication] keyWindow];
[mainWindow addSubview:myNewView];

如果通过视图你真的是指视图控制器,那么我认为没有办法“走”当前堆栈,因为它将取决于堆叠视图控制器的类,并且也出于与视图层次结构相同的原因:视图控制器可能有许多子项 - 例如UITabBarController