Чтобы заставить работать свайп-жест в UINavigationControoler в iOS, необходимо выполнить несколько шагов.
1. Добавьте свайп-жест к контроллеру навигации. Это можно сделать, используя метод addGestureRecognizer(_:)
для свойства interactivePopGestureRecognizer
контроллера навигации. Вот пример кода:
if let navigationController = self.navigationController { let swipeGestureRecognizer = UISwipeGestureRecognizer(target: navigationController, action: #selector(navigationController.handleSwipeFromLeft)) swipeGestureRecognizer.direction = .left navigationController.interactivePopGestureRecognizer?.addGestureRecognizer(swipeGestureRecognizer) }
В этом коде мы создаем новый свайп-жест, указываем его направление влево и добавляем его к свойству interactivePopGestureRecognizer
контроллера навигации. Обратите внимание, что мы также указываем селектор для метода, который будет вызван при выполнении жеста (handleSwipeFromLeft
).
2. Реализуйте метод handleSwipeFromLeft
в контроллере навигации, чтобы выполнить необходимые действия при свайпе. Например, вы можете использовать метод popViewController(animated:)
для возврата к предыдущему контроллеру. Вот пример реализации:
@objc func handleSwipeFromLeft() { if let navigationController = self.navigationController { navigationController.popViewController(animated: true) } }
3. Убедитесь, что ваши контроллеры навигации наследуются от UINavigationControllerDelegate
и установите делегат контроллера навигации в self
. Пример:
class YourNavigationController: UINavigationController, UINavigationControllerDelegate { override func viewDidLoad() { super.viewDidLoad() self.delegate = self } // Другие методы контроллера навигации... }
Вот и все! Теперь свайп-жест должен работать в вашем контроллере навигации.