UINavigationController проведите пальцем по жесту, чтобы открыть его, не работает [закрыто]IOS

Программируем под IOS
Гость
UINavigationController проведите пальцем по жесту, чтобы открыть его, не работает [закрыто]

Сообщение Гость »


Я создавал приложение UIKit, используя программный подход, без использования построителя интерфейсов. Я тестировал жест смахивания для открытия экрана, который является поведением UINavigationController по умолчанию, но действие смахивания для открытия экрана не работает.

ИнтерактивныйPopGestureRecouncer, встроенный в контроллер навигации, похоже, не работает должным образом. Я мог бы прикрепить UIPanGestureRecouncer или UISwipeGestureRecouncer, чтобы добиться аналогичного поведения. Но мне было интересно, почему это не работает.

Для отладки я использую физическое устройство под управлением iOS 17 и XCode 15.0.1.

Реализованная база кода содержит два UIViewController, которые обрабатываются через UINavigationController. Ниже приведен мой код SceneDelegate.

класс SceneDelegate: UIResponder, UIWindowSceneDelegate { окно вар: UIWindow? func Scene (_ сцена: UIScene, сеанс willConnectTo: UISceneSession, параметры ConnectionOptions: UIScene.ConnectionOptions) { Guard let Scene = (сцена как? UIWindowScene) else { return } self.window = UIWindow(windowScene: сцена) пусть vc1 = ProductsViewController() пусть vc2 = ProfileViewController() пусть NavigationController = UINavigationController (rootViewController: vc1) NavigationController.pushViewController(vc2, анимированный: true) окно?.rootViewController = NavigationController окно?.makeKeyAndVisible() } Ниже приведено определение моего двух контроллеров представления

класс ProfileViewController: UIViewController { переопределить функцию viewDidLoad() { супер.viewDidLoad() } } класс ProductsViewController: UIViewController { переопределить функцию viewDidLoad() { супер.viewDidLoad() } } Два контроллера представления не имеют настраиваемых кнопок «Назад». Они содержат только методы viewDidLoad, вызывающие инициализатор суперкласса.

Я попробовал описанные ниже подходы, но ни один из них не сработал.
[*]установка для параметра InteractivePopGestureRecouncer.delegate значения nil в viewDidLoad [*]установка activePopGestureRecouncer.delegate для экземпляра контроллера представления и возврат true для переопределенных методов [*]включение свойства activePopGestureRecouncer в контроллере навигации (оно включено по умолчанию)

Вернуться в «IOS»