Может ли UISwipeGestureRecognizer работать для просмотра в UIHostingController?

В соответствии с ответом в /questions/56446045/mogu-li-ya-imet-polnoekrannyij-viewcontroller-no-vse-esche-mogu-provesti-paltsem/56446053#56446053, я могу провести пальцем вниз, чтобы закрыть полноэкранный ViewController, используя UISwipeGestureRecognizer.

Однако, когда я передаю тот же код в UIHostingController как показано ниже, это больше не работает

class ContextViewController: UIHostingController<CustomDrawViewWrapper> {

    let drawViewWrapper: CustomDrawViewWrapper
    
    init(drawView: CustomDrawView) {
        self.drawViewWrapper = CustomDrawViewWrapper(drawView: drawView)
        super.init(rootView: self.drawViewWrapper)
    }
    
    required init?(coder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    
    override func viewDidLoad() {
        super.viewDidLoad()
        view.isUserInteractionEnabled = true
        let gesture = UISwipeGestureRecognizer(target: self, action: #selector(dismissVC))
        gesture.direction = .down
        view.addGestureRecognizer(gesture)
    }
        
    @objc
    private func dismissVC() {
        dismiss(animated: true)
    }
}

Все, что мне нужно сделать, чтобы свайп вниз работал UIHostingController?

Примечание: проведите пальцем вниз, чтобы закрыть, все еще работает, если UIHostingController не в полноэкранном режиме.

0 ответов

Другие вопросы по тегам