当视图层级很深的时候,如何获取当前视图的控制器?
获取根视图控制器的方法
方法一
思路:遍历当前视图的父视图,获取控制器
func responseUIViewController() -> UIViewController?{
for view in sequence(first: self.superview, next: { $0?.superview }){
if let response = view?.next{
if response.isKind(of: UIViewController.self){
return response as? UIViewController
}
}
}
return nil
}
方法二
思路:获取当前视图的根视图控制器
private func responseUIViewController() -> UIViewController?{
guard let vc = UIApplication.shared.windows.first else {
return nil
}
return vc.rootViewController
}