Как сделать QLPreviewItem, как определено в переменной функции previewController для разных кнопок UIB? - PullRequest
0 голосов
/ 09 мая 2019

Я новичок в разработке и быстро. Я пытаюсь реализовать предварительный просмотр для ряда файлов .usdz с помощью кнопок, открывающих файлы набора. Мне удалось реализовать PreviewController, однако я не могу сделать кнопки, специфичные для одного файла. В настоящее время каждая кнопка открывает только первый файл набора. Поэтому я ищу способ определить, какой файл в наборе открывается каждой кнопкой.

Я попытался определить объявление «let FileUrl» в функции previewController для каждой кнопки, однако это не работает для FileURL, поскольку QLPreviewItem уже определен в определении функции previewController для проекта.

Это определение для функции previewController, которая у меня сейчас есть:

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

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

Это один экземпляр IBAction для одной из кнопок с функцией previewController:

@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)

    }
...