如何使QLPreviewItem为不同UIButtons的PreviewController函数变量中定义?

时间:2019-05-09 19:28:16

标签: ios swift qlpreviewcontroller

我不熟悉发展和敏捷。我正在尝试使用可打开集合文件的按钮来实现一系列.usdz文件的快速预览。我已经能够实现PreviewController,但是,我无法使按钮特定于一个文件。当前,每个按钮仅打开集合的第一个文件。因此,我正在寻找一种定义每个按钮打开集合中哪个文件的方法。

我尝试为每个按钮在PreviewController函数中定义“ let FileUrl”声明,但是,这不适用于QLPreviewItem的FileURL,该URL已在项目的PreviewController函数的定义中定义。

这是我当前拥有的PreviewController函数的定义:

func previewController(
        _ controller: QLPreviewController, previewItemAt index: Int) -> QLPreviewItem {

        let fileUrl = Bundle.main.url(forResource: modelNames[modelIndex], withExtension: "usdz")!;
        return fileUrl as QLPreviewItem
    }

这是带有PreviewController函数的按钮之一的IBAction的一个实例:

@IBAction func to_ARzinc(_ sender: Any) {

        func numberOfPreviewItems(in controller: QLPreviewController) -> Int {
            return 1

        }

        func previewController(
            _ controller: QLPreviewController, previewItemAt index: Int) -> QLPreviewItem {

            let fileUrl = Bundle.main.url(forResource: "DNA with Zinc Finger", withExtension: "usdz")!;
            return fileUrl as QLPreviewItem
        }

        let previewController = QLPreviewController()
        previewController.dataSource = self
        previewController.delegate = self
        present(previewController, animated: true, completion: nil)

    }

0 个答案:

没有答案