小编典典

如何判断 UIViewController 的视图是否可见

all

我有一个标签栏应用程序,有很多视图。有没有办法知道UIViewController当前是否可以从内部看到特定的UIViewController?(寻找房产)


阅读 103

收藏
2022-03-06

共1个答案

小编典典

如果视图当前可见,则视图的window
属性
为非零,因此请检查视图控制器中的主视图:

调用
view
方法会导致视图加载(如果未加载),这是不必要的并且可能是不可取的。最好先检查它是否已经加载。我已经添加了对
isViewLoaded 的调用以避免这个问题。

if (viewController.isViewLoaded && viewController.view.window) {
    // viewController is visible
}

从 iOS9 开始,它变得更容易了:

if viewController.viewIfLoaded?.window != nil {
    // viewController is visible
}

或者如果你有一个 UINavigationController
管理视图控制器,你可以检查它的visibleViewController属性。

2022-03-06