是否可以在 UIImagePickerController 中以编程方式调用 didFinishPickingMediaWithInfo

Is it possible to Invoke didFinishPickingMediaWithInfo programmatically in UIImagePickerController

当我尝试使用 UIImagePickerController 在 ios 中捕获图像时,我执行以下操作

  1. 检查摄像头访问权限
  2. 显示图像选择器
  3. 在委托方法中添加逻辑 - didFinishPickingMediaWithInfo。

但是,在显示图像选择器后,用户单击相机按钮。之后,图像以 "Retake" 和 "Use Photo" 作为选项加载为预览。只有当我单击“使用照片”时,才会调用 didFinishPickingMediaWithInfo。我想摆脱用户通过单击“使用照片”进行确认的步骤。

我想在用户点击相机按钮时调用 didFinishPickingMediaWithInfo。

更新: 更好地控制 Camera 的方法是使用 AVFoundation。

使用 UIImagePickerController 不应发生这种情况。所以你有两个选择:

  • 1) 使用 PreviewLayer 等构建您自己的相机 ViewController(干净的解决方案)或
  • 2) 监听私有 API 通知,它会在某些事件发生时告诉您。您可以像这样将自己添加为所有系统通知的观察者:

    [[NSNotifcationCenter 默认中心] addObserver:self 选择器:@selector(notificationReceived:) name:nil object:nil]

找出您感兴趣的通知。然后在它发生时听取并采取行动(关闭 VC)。虽然不确定您将如何接收图像。这将需要更多私人 APIs 的 hackery.. 请注意,这里所有的第二个解决方案可能会使您的应用程序被拒绝。