Я пытаюсь отобразить предварительный просмотр, используя API LinkPresentation, веб-сайта внутри UIContextualMenu, когда пользователь принудительно или долго нажимает на ссылку, аналогично тому, как при работе с ссылками использовались функции peek и pop. Однако LP API загружает метаданные с веб-сайта асинхронно, и когда я нажимаю на ссылку, контроллер предварительного просмотра, отображаемый в контекстном меню, становится пустым. Ниже приведен метод делегата для UIContextMenuConfiguration:
public func contextMenuInteraction(_ interaction: UIContextMenuInteraction, configurationForMenuAtLocation location: CGPoint) -> UIContextMenuConfiguration? {
guard let url = shouldShowContextualMenu(location: location) else { return nil }
return UIContextMenuConfiguration(identifier: nil, previewProvider: { () -> UIViewController? in
self.getMetadataForUrl(url: url ) { linkView in
self.previewController = LinkPreviewViewController(linkView: linkView)
}
return self.previewController
}, actionProvider: nil)
}