如何检查视图是否在视图层次结构中?

时间:2012-12-05 02:38:24

标签: objective-c xcode4.5

例如,如果viewController的视图在viewHierarchy中,我刚刚下载完东西,我想快速更新内容。如果self.view不在viewHierarchy中,我想推迟更新。

我想,我可以添加一个布尔变量来表示并将其放在viewWillAppear和viewWillDisappear上。

我也可以扫描窗口,看看UIView是否在viewHierarchy中。

有更简单的方法吗?

3 个答案:

答案 0 :(得分:12)

在视图控制器中:

if (self.isViewLoaded && self.view.window != nil) {
    // view is in a view hierarchy and should be updated
}

答案 1 :(得分:1)

viewDidLoad只有在视图加载完成后才会被触发,我想。所以你可以在viewDidLoad中添加必要的功能。

答案 2 :(得分:0)

要检查它是否不在视图层次结构中,就足够了:

// From a UIViewController sub-class
if !self.isViewLoaded {
    // view is not in the view hierarchy
}