У меня есть UITableView
, и в каждой ячейке есть UIView
, добавленное как подпредставление.В настоящее время у меня есть UITapGestureRecognizer
, чтобы открывать In-App-Safari
всякий раз, когда я нажимаю на один из этих UIViews
.Однако я изо всех сил пытаюсь реализовать пример кода Apple функции просмотра и всплытия для принудительного прикосновения.Мой код выглядит следующим образом:
@IBOutlet var mainTableView: UITableView!
в viewDidLoad () :
registerForPreviewing(with: self as! UIViewControllerPreviewingDelegate, sourceView: mainTableView)
после viewDidLoad () :
func previewingContext(_ previewingContext: UIViewControllerPreviewing, viewControllerForLocation location: CGPoint) -> UIViewController? {
// First, get the index path and view for the previewed cell.
guard let indexPath = tableView.indexPathForRow(at: location),
let cell = tableView.cellForRow(at: indexPath)
else { return nil }
//Enable blurring of other UI elements, and a zoom in animation while peeking.
previewingContext.sourceRect = cell.frame
//Create and configure an instance of the color item view controller to show for the peek.
guard let url = someURL else { return nil }
let vc = SFSafariViewController(url: url)
vc.delegate = self as SFSafariViewControllerDelegate
return vc
}
func previewingContext(_ previewingContext: UIViewControllerPreviewing, commit viewControllerToCommit: UIViewController)
{
//Push the configured view controller onto the navigation stack.
navigationController?.pushViewController(viewControllerToCommit, animated: true)
}
Xcode
возвращает ошибки, такие как
Полученное событие давления памяти 4 Вм давления 1
и
Завершение приложенияиз-за неперехваченного исключения NSInvalidArgumentException, причина: '- [ViewController previewingContext: viewControllerForLocation:]: нераспознанный селектор, отправленный экземпляру
Я не нашел решения для просмотра и публикации веб-контента при нажатииUIView
.