微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在同一VC中设置多个UIDocumentPickers

如何解决如何在同一VC中设置多个UIDocumentPickers

一个VC中,我正在使用三个按钮,每个按钮应显示一个用于不同类型媒体的文档选择器。我已经配置好了-但是我不确定该怎么做才能处理我的委托方法

func documentPicker(_ controller: UIDocumentPickerViewController,didPickDocumentsAt urls: [URL]) {

由于每个按钮应该以不同的方式处理此功能,因此如何监视哪个文档选取器触发了委托方法?我尝试使用controller.tag,但这似乎不是UIDocumentPickerViewController属性。任何指针将不胜感激。

解决方法

您可以在视图控制器中创建UIDocumentPickerViewController的3个单独实例,并在委托方法中检查controller的实例。

private lazy var documentPicker1: UIDocumentPickerViewController = {
    let controller = UIDocumentPickerViewController()
    controller.delegate = self
    return controller
}()

private lazy var documentPicker2: UIDocumentPickerViewController = {
    let controller = UIDocumentPickerViewController()
    controller.delegate = self
    return controller
}()

private lazy var documentPicker3: UIDocumentPickerViewController = {
    let controller = UIDocumentPickerViewController()
    controller.delegate = self
    return controller
}()

func documentPicker(_ controller: UIDocumentPickerViewController,didPickDocumentAt url: URL) {
    
    if controller == documentPicker1 {

    } else if controller == documentPicker2 {

    }
    ...
}

或者您可以在view controller中保留一个属性,以跟踪被点击的按钮并在委托方法中对其进行检查。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。