当前位置: 首页 > 知识库问答 >
问题:

Xcode 12中未调用didFinishPickingMediaWithInfo

戚浩淼
2023-03-14

我已经在UImagePickerController上工作过。这段代码在Xcode11.3中已经运行良好。但是当我在Xcode12上运行时,图像拾取器委托没有在Xcode12中调用。

 let pickerController: UIImagePickerController = UIImagePickerController()
  pickerController.mediaTypes = ["public.image"]
  pickerController.sourceType = "Photo library"
            
  self.presentationController?.present(pickerController, animated: true, completion: {
                pickerController.delegate = self
            })

当我检查委托是否已应用或未使用断点时。如控制台中的意思

po imagepicker.delegate 

在那里,图像拾取器代表工作良好。但是当我移除断点时,它的委托没有调用。

我不知道是什么原因。为什么不起作用。请问如何解决这个问题。

共有2个答案

上官季
2023-03-14

这很可能是因为您没有将选择器控制器保留在变量中。一旦函数完成,它就会被释放。

例如,我有这样的东西:

class MyClass: UIImagePickerControllerDelegate {
   let imagePicker = UIImagePickerController()
}

func pickImageFromGallery() {
    self.imagePicker.delegate = self
    self.imagePicker.sourceType = UIImagePickerController.SourceType.photoLibrary
    self.imagePicker.allowsEditing = false
    self.present(self.imagePicker, animated: true, completion: nil)
}

... and the delegate methods as well
洪飞龙
2023-03-14

是否有任何理由不将pickerController.delegate=self置于Self.PresentationController?。Present(pickerController,Animated:true,Completion:{})'之前?

如果没有,也许您可以将pickercontroller.delegate=self放在前面,然后再试一次。

 类似资料:
  • 谁能帮助我理解我做错了什么,以及我如何触发onRequestPermissionsResult,以便我可以在应用程序中启动下一个活动?

  • 问题内容: 如果从调用, 则会 收到消息 “套接字已连接” ,但未调用。我在这里想念什么? 问题答案: 在AngularJS中,承诺结果在$ digest周期内异步传播。因此,仅在进入$ digest循环时才调用在then()中注册的回调函数。 因此,当您的套接字连接时,我们处于摘要周期。 创建一个新的Promise,但是直到下一个摘要周期(永远不会到来的摘要周期)之前,它的结果才会传播(因为没有

  • 问题内容: 我有一个简单的程序,其中显示了一些项目的列表,单击其中的一个后,单击的项目将传递回附件。当用户取消对话框时,我还想执行一些默认处理(使用 后退按钮 )-更具体地说,在这种情况下,我想向活动传递一个空字符串。 但是,如果将对话框放在(来自 兼容性包 )中, 则使用后退按钮关闭对话框时不会调用 。我究竟做错了什么? 问题答案: 这可能与您的代码中没有显式调用的事实有关。该OnCancelL

  • 问题内容: 实例化ArrayAdapter时,我收到以下警告(编译正常): 这是问题所在: 有人对它为什么给我这个警告有任何想法吗? 问题答案: 这是因为希望您指定它将处理的对象类型。因此,为了避免这些警告,请执行以下操作:

  • 问题内容: 我知道有人问过这个问题,但是我遵循了所有答案,但仍然有同样的问题。我有两个脚本,一个是片段管理器(IngredientsActivity),另一个是片段(OtherList)。代码如下 成分活动 其他清单 我发现有多个建议可以覆盖onSaveInstanceState的建议,并且我发现更多建议告诉我使用setRetainInstance。我不知道如果要保存列表的值,为什么setReta

  • 我有一个应用程序,得到了一个活动与2个碎片水平放置。 在我的活动中,我使用膨胀菜单,使用它我可以显示actionbar选项菜单。但是,当我试图从其中一个片段更新操作栏菜单项时,没有调用。因此,我无法更新操作栏选项菜单。

  • 我正在开发一个带有ActionBars的应用程序,它支持姜饼和其他功能。所以基本上我在使用支持库并扩展 行动B活动 对于我所有的活动。除了 onSupportNavigateUp() 方法。它只是不被调用在留档中所述。 每当用户选择从操作栏在应用程序的活动层次结构中向上导航时,就会调用此方法。 这很容易,但我一直不明白为什么它不能像预期的那样工作,谷歌也帮不上忙。这是虫子吗?还是我错过了什么?

  • 运行playstore Build Apk时,未调用Marshmallow Runtime Permissions onRequestPermissionsResult,但正常调试Apk时运行良好。谁来帮帮我。。谢谢 OnRequestPermissionResult方法