如何检测 UIImagePickerController 或 UIDocumentPickerController window 是否打开

How to detect that UIImagePickerController or UIDocumentPickerController window is opened

我在我的应用程序中显示覆盖自定义视图。 我找到键 window,并将我的覆盖自定义视图添加到键 window 的子视图中。 我将覆盖自定义视图的 layer.zposition 设置为 1.

当我打开 UIImagePickerControllerUIDocumentPickerViewController 时,我无法触摸任何东西(它没有任何作用,包括 UIImagePickerController 中的取消按钮)并且我的覆盖自定义视图仍然存在。

所以我试图检测 UIImagePickerControllerUIDocumentPickerViewController window 是否打开。如果它打开了,我会降低我的覆盖自定义视图的 layer.zposition。专辑会感动。

如何获取UIImagePickerControllerUIDocumentPickerViewController被打开的事件?

有两种方法可以知道何时显示这些控制器:

  1. 您可以为您的根视图控制器覆盖 presentViewController:animated:completion: 方法,因为此方法检查 viewControllerToPresent 是 class 类型的 UIImagePickerController 还是 UIDocumentPickerViewController .并围绕叠加视图进行必要的更改。
  2. 我希望您只从源代码中展示这些控制器,在这种情况下,您可以在展示这些视图控制器之前进行必要的更改。