mirror of
https://github.com/logseq/logseq.git
synced 2026-05-29 15:09:41 +00:00
fix: swipe back
This commit is contained in:
@@ -8,7 +8,7 @@
|
||||
|
||||
import UIKit
|
||||
|
||||
class NativePageViewController: UIViewController {
|
||||
class NativePageViewController: UIViewController, UIGestureRecognizerDelegate {
|
||||
let targetPath: String
|
||||
let push: Bool
|
||||
|
||||
@@ -29,7 +29,37 @@ class NativePageViewController: UIViewController {
|
||||
SharedWebViewController.instance.attach(to: self)
|
||||
}
|
||||
|
||||
override func viewWillAppear(_ animated: Bool) {
|
||||
super.viewWillAppear(animated)
|
||||
navigationController?.interactivePopGestureRecognizer?.isEnabled = true
|
||||
}
|
||||
|
||||
override func viewDidAppear(_ animated: Bool) {
|
||||
super.viewDidAppear(animated)
|
||||
|
||||
guard let nav = navigationController,
|
||||
let popGesture = nav.interactivePopGestureRecognizer else { return }
|
||||
|
||||
popGesture.delegate = self
|
||||
let isSidebar = (targetPath == "/left-sidebar")
|
||||
popGesture.isEnabled = !isSidebar && nav.viewControllers.count > 1
|
||||
}
|
||||
|
||||
func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool {
|
||||
guard
|
||||
let nav = navigationController,
|
||||
gestureRecognizer === nav.interactivePopGestureRecognizer
|
||||
else { return true }
|
||||
|
||||
if targetPath == "/left-sidebar" {
|
||||
return false
|
||||
}
|
||||
return nav.viewControllers.count > 1
|
||||
}
|
||||
|
||||
func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer,
|
||||
shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) -> Bool {
|
||||
guard let nav = navigationController else { return false }
|
||||
return gestureRecognizer === nav.interactivePopGestureRecognizer
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user