Как отключить жест UINavigation swipe только для UITabbarController? - PullRequest
0 голосов
/ 11 декабря 2019

Я работаю над приложением iOS и использую Swift 4.2 и Xcode 10.3.

Мне нужно включить жест смахивания, чтобы выскочить UIViewController в UINavigationController, и это поток экрана моего приложения:

enter image description here

Описание потока:

  • Я использую UINavigationController, а заставка включена rootViewController.
  • Через 3 секунды на заставке я нажимаю экран, на котором пользователь может зарегистрироваться и войти в систему.
  • После входа или регистрации я нажимаю UITabbarController.
  • В * 1024 есть четыре панели вкладок. * и каждый содержит navigationController.
  • Чтобы открыть экран корзины, я также нажимаю его с UITabbarController.
  • После экрана корзины я нажимаю Экран оплаты.

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

 override func viewWillAppear(_ animated: Bool) {

        self.navigationController?.interactivePopGestureRecognizer?.delegate = nil

}

Этот всплывающий список с жестами смахивания работает нормально, но я просто хочу отключить его только для контроллера панели вкладок. Когда я проводил влево к контроллеру вкладок, на экране появляется кнопка «Вход» и «Регистрация».

Поэтому моя проблема заключается в том, как отключить всплывающее окно жестов смахивания для некоторого экрана в стеке навигации.

1 Ответ

0 голосов
/ 11 декабря 2019

Вам нужно отключить «interactivePopGestureRecognizer» в желаемом VC для того, чтобы не сделать возможным смахивание, добавить этот фрагмент в viewDidLoad

navigationController?.interactivePopGestureRecognizer?.isEnabled = false

И если вы хотите включить в другом VC, обязательно включите егоиспользуя -

navigationController?.interactivePopGestureRecognizer?.isEnabled = true

Попробуйте!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...