+(BOOL)isCurrentViewControllerVisible:(UIViewController *)viewController { return (viewController.isViewLoaded && viewController.view.window); }
也可以將該方法定義在UIViewController的分類中, 方便多處調用
假如一個UIView對象當前正在顯示,那么它的window屬性肯定為非空值。
雖然官方文檔未說明UIView未顯示時window屬性的取值,但是經過簡單的測試,大部分情況下UIView未顯示時,
window的值為空,因此依據此判斷當前UIViewController是否正在顯示。但是訪問UIViewController的view屬性時,
可能會引起view加載(假如此時還未加載),這是不必要的,而且還可能引起無法預期的問題。因此在訪問view屬性之前,最好先檢查isViewLoaded屬性來避免上述問題。