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

时间:2016-12-20 20:00:00

标签: ios swift3 uiimagepickercontroller

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

  1. 检查相机访问权限
  2. 出示图像选择器
  3. 在委托方法中添加逻辑 - didFinishPickingMediaWithInfo。
  4. 但是,在显示图像选择器后,用户单击“相机按钮”。之后,使用" Retake"将图像作为预览加载。和"使用Photo"作为选择。只有当我点击“使用照片”时才会调用didFinishPickingMediaWithInfo。我想通过单击“使用照片”来摆脱用户确认的步骤。

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

    更新: 通过使用AVFoundation可以更好地控制相机。

1 个答案:

答案 0 :(得分:1)

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

  • 1)使用PreviewLayer等(清洁解决方案)或
  • 构建自己的Camera ViewController
  • 2)侦听私有API通知,它会告诉您某些事件何时发生..您可以将自己添加为所有系统通知的观察者,如下所示:

    [[NSNotifcationCenter defaultCenter] addObserver:self selector:@selector(notificationReceived :) name:nil object:nil]

找出您感兴趣的通知。然后听取并采取行动(解除VC),当它发生时。不知道你将如何收到图像。这需要更多关于私有API的hackery ..请注意,这里的所有第二个解决方案可能会让您的应用程序被拒绝。