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 в контроллере навигации (оно включено по умолчанию)
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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