我有一个标签栏应用程序,有很多视图。有没有办法知道UIViewController当前是否可以从内部看到特定的UIViewController?(寻找房产)
UIViewController
如果视图当前可见,则视图的window 属性为非零,因此请检查视图控制器中的主视图:
调用 view方法会导致视图加载(如果未加载),这是不必要的并且可能是不可取的。最好先检查它是否已经加载。我已经添加了对 isViewLoaded 的调用以避免这个问题。
if (viewController.isViewLoaded && viewController.view.window) { // viewController is visible }
从 iOS9 开始,它变得更容易了:
if viewController.viewIfLoaded?.window != nil { // viewController is visible }
或者如果你有一个 UINavigationController 管理视图控制器,你可以检查它的visibleViewController属性。