【发布时间】:2021-08-28 13:55:13
【问题描述】:
我使用following 来检查最顶层的视图控制器。我需要检查顶视图控制器是否是 ImagePickerController
guard let window = UIApplication.shared.windows.first(where: \.isKeyWindow) else { return }
guard let topVC = window.topViewController() else { return }
if topVC.isKind(of: ImagePickerController.self) {
// ...
}
如何检查顶部 vc 是否有/是否显示了 imagePicker?
extension UIWindow {
func topViewController() -> UIViewController? {
var top = self.rootViewController
while true {
if let presented = top?.presentedViewController {
top = presented
} else if let nav = top as? UINavigationController {
top = nav.visibleViewController
} else if let tab = top as? UITabBarController {
top = tab.selectedViewController
} else {
break
}
}
return top
}
}
【问题讨论】:
-
if let imagePicker = UIApplication.shared.windows.first?.topViewController() as? UIImagePickerController { }检查这个。还是UIImagePickerController.self? -
它有效,谢谢:)
-
请将其添加为答案,以便我接受
标签: ios swift uiimagepickercontroller