extension UIApplication {
class func getTopMostViewController(base: UIViewController? = UIApplication.shared.keyWindow?.rootViewController) -> UIViewController? {
if let nav = base as? UINavigationController {
return getTopMostViewController(base: nav.visibleViewController)
}
if let tab = base as? UITabBarController {
if let selected = tab.selectedViewController {
return getTopMostViewController(base: selected)
}
}
if let presented = base?.presentedViewController {
return getTopMostViewController(base: presented)
}
return base
}
}
iOS獲取最頂層ViewController
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
推薦閱讀更多精彩內容
- 1 實現思路通過最底層的ViewController依次向上尋找,直到找到最頂層的ViewController,也...
- 獲取頂層ViewController的代碼如下, The view controller that is pres...
- 業務上,尤其是SDK的工程中,有時候需要在集中的地方獲取當前顯示的ViewController,便于present...
- 前言 在iOS中開放中,我們可能會遇到需要通過代碼獲取當前顯示在屏幕最頂層的ViewController,比如我們...
- 通過下面的函數可以獲取當前的controller( [[self topViewController] pr...