我正在尝试使用以下内容获取当前显示的ViewController
:
let currentViewController = UIApplication.sharedApplication().keyWindow!.rootViewController?.presentedViewController
此属性为我提供了TabBarController
。 presentedViewController
之后唯一的属性是“childViewControllers
”。
我如何使用它来获得当前显示的ViewController
?
答案 0 :(得分:0)
如果是基于TabBar的应用程序,那么检查当前选择的ViewController
取决于以下条件:
第一个跟踪选择了哪个标签栏,例如:检查选择了哪个标签索引的条件
为每个TabBar维护NavigationController
然后检查navigationcontroller stack最后一个索引以匹配ViewController。 (你可以说是chilviewcontroller)。
希望它有所帮助。
答案 1 :(得分:0)
您可以从tabBarController
访问所选的视图控制器。一个简单的方法是使用此扩展名。
请注意,在viewDidAppear
之前,它不会使用正确的值进行更新。在此之前检查属性将为您提供之前的屏幕。
import UIKit
extension UITabBarController {
var displayedViewController: UIViewController? {
return selectedViewController
}
}