[英]How to get top view controller when UIImagePickerController is presented?
[英]How do I get the top view which is a presented view controller
我有一個導航欄控制器。 經過一些操作后,我需要彈出一個新視圖,它是一個顯示的視圖控制器。 然后我如何獲得頂視圖?
我總是在導航堆棧上獲得頂視圖,但在呈現的視圖上卻沒有。 為什么?
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
let aVariable = appDelegate.window
if let topController = aVariable!.visibleViewController() {
print(topController)
}
嘗試
if let topController = myNavigationController.visibleViewController {
print(topController)
}
Swift 3示例獲取頂級UIViewController來展示另一個UIViewController:
import UIKit
extension UIApplication {
var topVC: UIViewController? {
get {
let rootVC = UIApplication.shared.keyWindow?.rootViewController
if let nav = rootVC as? UINavigationController {
return nav.visibleViewController
} else if let tab = rootVC as? UITabBarController, let selected = tab.selectedViewController {
return selected
} else if let presented = rootVC?.presentedViewController {
return presented
}
return rootVC
}
}
}
可以通過以下方式調用它:
_ = UIApplication.shared.topVC?.present(yourViewController, animated: true)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.