如何在iPhone应用程序中获取最高级别的Superview?

如何在iPhone应用程序中获取最高级别的Superview?,iphone,uiview,superview,Iphone,Uiview,Superview,我希望能够获取应用程序的主UIView。到目前为止,我一直在调用[[[self.view superview]superview]superview]向上遍历链(或者向下遍历,具体取决于您如何看待它)。问题是,我可能无法绝对确定需要升级的级别数。有没有办法: 直接转到iPhone应用程序中的最高级别UIView 或者,如果不是 检查当前superview是否为应用程序中的最高级别UIView 只是从顶部开始,比如检查当前视图的superview属性是否为null?如果是的话,我想我们可以假定它是

我希望能够获取应用程序的主UIView。到目前为止,我一直在调用[[[self.view superview]superview]superview]向上遍历链(或者向下遍历,具体取决于您如何看待它)。问题是,我可能无法绝对确定需要升级的级别数。有没有办法:

  • 直接转到iPhone应用程序中的最高级别UIView
  • 或者,如果不是

  • 检查当前superview是否为应用程序中的最高级别UIView

  • 只是从顶部开始,比如检查当前视图的superview属性是否为null?如果是的话,我想我们可以假定它是根视图。

    只是把它从顶部拉下来,比如检查当前视图的superview属性是否为null?如果是,我想我们可以假定它是根视图。

    我不确定它是否是您首先要寻找的,但它可以帮助您

    如果您试图查找俯视图以添加子视图,例如弹出窗口或其他视图,则可以使用UIWindow,它在某种程度上是俯视图:

    UIWindow* window = [UIApplication sharedApplication].keyWindow;
    if (!window) {
        window = [[UIApplication sharedApplication].windows objectAtIndex:0];
    }
    [window addSubview:yourView];
    

    我不确定这是否是你一开始想要的,但它可以帮助你

    如果您试图查找俯视图以添加子视图,例如弹出窗口或其他视图,则可以使用UIWindow,它在某种程度上是俯视图:

    UIWindow* window = [UIApplication sharedApplication].keyWindow;
    if (!window) {
        window = [[UIApplication sharedApplication].windows objectAtIndex:0];
    }
    [window addSubview:yourView];
    

    啊!!太完美了!我会给你一个机会,让你知道,但我想这正是我要找的!酷!别忘了接受答案,如果它有效的话,就结束这个问题。当然,我一有机会就去尝试。啊!太完美了!我会给你一个机会,让你知道,但我想这正是我要找的!酷!如果这个问题行得通的话,别忘了接受答案来结束这个问题。当然,我一有机会就去尝试。