[英]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.