Как сделать SWRevealViewController дочерним по отношению к другому контроллеру в swift
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, который будет отображаться, имеет свой собственный контроллер навигации, но если он работает для вас, вы можете оставить его.