Задать вопрос
deleted-mezhevikin
@deleted-mezhevikin

Как заставить работать свайп назад в UINavigationController вместе DrawerController?

Использую библиотеку для сайд меню https://github.com/sascha/DrawerController/ - это порт на swift библиотеки https://github.com/mutualmobile/MMDrawerController

Библиотека отлично умеет распознавать и разделять свайп назад в UINavigationController и свайп для открытия бокового меню. Но при этом если скрыть NavigationBar свайп назад перестает работать. Если погуглить проблему, то находится это решение - stackoverflow.com/questions/24710258/no-swipe-back... . Там советуют сделать interactivePopGestureRecognizer?.delegate = nil и оно работает но не вместе с DrawerController.

Видео с багой - https://www.youtube.com/watch?v=HgayLC5a_Ik
Демо проект - https://github.com/nullproduction/SliderApp

Я собрал специальный демо проект чтобы показать багу + снял видео проблемы. На видео я показываю что сначало работает и спайп назад и спайп сайд меню, потом скрываю navigationBar и показываю что свайп назад больше не работает.

Первый делом создал issue в репозитории библиотеки https://github.com/sascha/DrawerController/issues/38 . Мне ответили что это не проблема библиотеки а проблема UIKit и закрыли issue.

Любые идеи как можно решить это проблему?
  • Вопрос задан
  • 451 просмотр
Подписаться 1 Оценить Комментировать
Решения вопроса 1
deleted-mezhevikin
@deleted-mezhevikin Автор вопроса
Я скрывал навбар через переменную navigationBarHidden = true

Решение оказалось в использовании метода setNavigationBarHidden(true, animated: false). Видимо внутри метода делаются какие то дополнительные манипуляции отличные от сеттера navigationBarHidden. Меджик!

navigationController?.setNavigationBarHidden(true, animated: false)
navigationController?.interactivePopGestureRecognizer!.delegate = self
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы