如何获取最外面的父UIView容器?

5 guard uiview superview ios swift

我如何获得当前self UIView当前使用的Gran Gran父视图self.superview?.superview?.superview?.superview?.superview?.superview?

看起来有点怪异,而不是使用上述语法来获取main的任何其他方式,UIView否则我该如何防止这种可选的链接guard

Kam*_*LIB 3

您可以使用guard返回可选的方法(我假设您是从 UIView 自定义类调用此方法)。

private func outerMostParent(view:UIView)-> UIView? {
    guard let parent  = superview?.superview?.superview?.superview?.superview?.superview
           else{
        return nil
    }
    return parent
}
Run Code Online (Sandbox Code Playgroud)

然后你可以做

self.outerMostParent(self)?.addSubview(yourSubview)
Run Code Online (Sandbox Code Playgroud)