У меня есть пользовательский интерфейс, где SCNView находится в фоновом режиме, а WKWebView на переднем плане представлен как .popover
.Представления контролируются отдельными контроллерами представления.WKWebView появляется, когда пользователь нажимает кнопку (см. Прикрепленный экран).В SCNView включено стандартное управление камерой.
В настоящее время, когда появляется всплывающее окно WKWebView, SCNView перестает отвечать на запросы.Жест касания вне WKWebView закрывает его, другие жесты игнорируются, поэтому пользователь не может управлять камерой SCNView, пока отображается всплывающее окно WKWebView. Как я могу сделать SCNView отзывчивым, пока присутствует поповер WKWebVIew?Как я могу закрыть WKWebView, только когда нажата кнопка звонка ?
Код, используемый ниже:
class MainVC: UIViewController, UIPopoverPresentationControllerDelegate {
@IBOutlet weak var scnView: SCNView!
@IBOutlet weak var bellBtn: UIButton!
var myWebViewVC: MyWebViewVC!
override func viewDidLoad() {
super.viewDidLoad()
let scene = SCNScene(named: "art.scnassets/DemoScene.scn")!
let scnView = sceneView
scnView!.scene = scene
scnView!.allowsCameraControl = true
}
@IBAction func onBellBtnPressed(_ sender: UIButton) {
myWebViewVC.modalPresentationStyle = .popover
myWebViewVC.popoverPresentationController?.delegate = self
present(myWebViewVC, animated: true, completion: nil)
myWebViewVC.popoverPresentationController?.sourceView = sender
myWebViewVC.popoverPresentationController?.sourceRect = sender.bounds
}
}
MyWebViewVC
заботится только о размере вида.Никаких дополнительных пользовательских модификаций в файле не реализовано.