Не удается скрыть кнопку «Поделиться» в USDZ + QLPreviewController - PullRequest
0 голосов
/ 15 ноября 2018

Я получил проект, включающий несколько файлов USDZ для функций дополненной реальности, встроенных в приложение. Хотя это прекрасно работает, и мы действительно довольны тем, как оно работает, встроенную кнопку общего доступа в QLPreviewController мы хотели бы удалить. Подклассы объекта не имеют никакого эффекта, и попытка скрыть rightBarButtonItem с контроллером, возвращенным в методе делегата, все еще показывает кнопку, когда файл выбран. Используемая нами реализация USDZ + QLPreviewController довольно проста. Есть ли способ обойти эту проблему?

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


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

     let url = Bundle.main.url(forResource: models[selectedObject], withExtension: "usdz")! controller.navigationItem.rirButtonItems = nil.   
// <- no effect return url as QLPreviewItem   

}  

 @IBAction func userDidSelectARExperience(_ sender: Any) {   
     let previewController = QLPreviewController()   
     previewController.dataSource = self   
     previewController.delegate = self   
     present(previewController, animated: true)   
}  

Ответы [ 3 ]

0 голосов
/ 30 ноября 2018

Мне не удалось добраться до кнопки «Поделиться», чтобы скрыть или отключить ее. Потратил дни, чтобы преодолеть это. Я сделал довольно непрофессиональный способ его преодоления. Подпишите QLPreviewController на ViewController и подпишите кнопку или представление поверх изображения сверху кнопки общего доступа и установите логотип моей компании в качестве изображения. Он будет там все время, даже верхняя полоска прячется на весь экран в режиме AR. Не чистое решение. Но работает.

0 голосов
/ 12 августа 2019

Мой подход заключается в добавлении QLPreviewController в качестве подпредставления.

container - это UIView в раскадровке.

let preview = QLPreviewController()

preview.dataSource = self

preview.view.frame = CGRect(origin: CGPoint(x: 0, y: -45), size: CGSize(width: container.frame.size.width, height: container.frame.size.height+45) )

container.addSubview(preview.view)
preview.didMove(toParent: self)

Смещение y кадровПроисхождение и размер могут отличаться.Это обеспечит вид AR QuickLook того же размера, что и UIView, и одновременно скроет кнопки (к сожалению, все).

0 голосов
/ 16 ноября 2018

TLDR: я не думаю, что ты можешь.

Я не видел ни одного сеанса WWDC, даже упомянув об этом, и я не могу найти никакой документации для разработчиков. Я почти уверен, что смысл ARKit QLPreviewController в том, что вам не нужно выполнять какое-либо реальное кодирование на стороне AR. Я вижу привлекательность для этого и для настройки в целом, однако, я бы предложил вместо этого взглянуть на некоторые другие проекты ARKit , которые Apple выпустила, и попытаться воссоздать их с нуля как против раздевания этого.

Пожалуйста, сообщите, если это изменится, поскольку я хотел бы сделать что-то подобное, особенно в Safari.

...