【问题标题】:How to set up multiple UIDocumentPickers in the same VC如何在同一个VC中设置多个UIDocumentPickers
【发布时间】:2020-08-16 19:50:41
【问题描述】:

在我工作的一个 VC 中,有三个按钮,每个按钮都应该为不同类型的媒体提供一个文档选择器。我已经配置好了——但我不确定如何处理我的委托方法

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

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

【问题讨论】:

    标签: ios swift uidocumentpicker


    【解决方案1】:

    您可以在视图控制器中创建 3 个单独的 UIDocumentPickerViewController 实例,并在委托方法中检查 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 中保留一个属性来跟踪哪个按钮被点击并在委托方法中检查它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-21
      • 2017-02-10
      • 1970-01-01
      • 1970-01-01
      • 2012-10-14
      • 1970-01-01
      • 2015-01-30
      • 1970-01-01
      相关资源
      最近更新 更多