Как сделать SWRevealViewController дочерним по отношению к другому контроллеру в swift

Привет, у меня есть проблема, которую я пытался решить, читая документы, но не смог.

Я хочу, чтобы контроллер панели вкладок был начальным VC, а не SWRevealViewController.

Дело в том, что выдвигающееся меню в боковой части приложения не первый вк. Итак, вопрос, как сделать SWRC там?

1 ответ

Решение

Почему вы не можете переместить свой контроллер представления представления как последний контроллер в очереди навигации и использовать свой контроллер с меню "Элемент" как Sw_front? Он должен работать.

В качестве альтернативы вы можете удалить весь контроллер отображения вида из раскадровки и создать его вручную из первого контроллера представления в очереди навигации. А потом толкни.

SWRevealViewController имеет метод, называемый initWithRearViewController:frontViewControllerи вы можете получить контроллеры представлений Sw_rear и Sw_front с instantiateViewControllerWithIdentifier из раскадровки.

Затем при добавлении меню "Пункт" (вручную) на панель навигации вы назначаете revealToggle: как action и ваш SWRevealViewController пример как target,

Существует несколько вариантов этого подхода: вы можете поместить свой SWRevealViewController перед контроллером навигации в раскадровке и указать контроллер навигации как Sw_front. Тогда вам не нужно создавать экземпляр SWRevealViewController вручную, но только меню "Пункт".

Здесь также может быть полезно removeGestureRecognizers из раскрывающегося представления контроллера на viewWillAppearпромежуточного контроллера представления в очереди навигации, а затем добавить обратно panGestureRecognizer а также tapGestureRecognizer на viewWillAppear контроллера вида с меню "Пункт".

ОБНОВИТЬ

Вот пример проекта использования SWRevealViewController в Swift с Tabbar.

Я только что взял пример проекта с http://www.appcoda.com/sidebar-menu-swift/ и немного подкорректировал.

И что мне не нравится в использовании SWRevealViewController со раскадровками, так это то, что каждый новый ViewController, который будет отображаться, имеет свой собственный контроллер навигации, но если он работает для вас, вы можете оставить его.

Другие вопросы по тегам