Я хочу создать выдвижную панель навигации для обеих сторон (слева и справа) с помощью segue
. Некоторые вещи, которым я должен следовать в этом случае. Таблица меню слева и справа должна быть в UIViewController
(не в UITableViewController
), а все viewController
перемещаются через UINavigationController
(встроено).
Я уже пробовал массу примеров, но все они созданы UITableViewController
. Из-за этого я не могу настроить левую или правую таблицу меню в соответствии с моим дизайном.
Если бы кто-нибудь мог дать мне какую-нибудь ссылку или аналогичные уроки, это было бы очень заметно.
Большое спасибо заранее. Хорошего дня.
2 ответа
Вы можете использовать MMDrawcontroller и передать LeftView, RightView и Centerview с помощью Navigationcontroller. Все три контроллера - UIViewController
. Вы также можете добавить левый и правый вид с NavigationController так же, как CenterView, чтобы вы могли нажимать из левого и правого представления.
CenterVC *objCenter = [[CenterVC alloc] initWithNibName:@"CenterVC" bundle:nil];
LeftVC *objleftVC = [[LeftVC alloc] initWithNibName:@"LeftVC" bundle:nil];
RightVC *objrightVC = [[RightVC alloc] initWithNibName:@"RightVC" bundle:nil];
/*--- Init navigation for Center Controller ---*/
UINavigationController *_navC = [[UINavigationController alloc] initWithRootViewController:objCenter];
_navC.navigationBarHidden = YES;
_navC.navigationBar.translucent = NO;
MMDrawerController *drawerController = [[MMDrawerController alloc]
initWithCenterViewController:_navC
leftDrawerViewController:objleftVC
rightDrawerViewController:objrightVC];
[drawerController setShowsShadow:NO];
[drawerController setRestorationIdentifier:@"MMDrawer"];
[drawerController setMaximumLeftDrawerWidth:[[UIScreen mainScreen] bounds].size.width-45.0];
[drawerController setMaximumRightDrawerWidth:[[UIScreen mainScreen] bounds].size.width-45.0];
[drawerController setOpenDrawerGestureModeMask:MMOpenDrawerGestureModeAll];
[drawerController setCloseDrawerGestureModeMask:MMCloseDrawerGestureModeAll];
[drawerController setShouldStretchDrawer:NO];
[drawerController
setDrawerVisualStateBlock:^(MMDrawerController *drawerController, MMDrawerSide drawerSide, CGFloat percentVisible) {
MMDrawerControllerDrawerVisualStateBlock block;
block = [[MMExampleDrawerVisualStateManager sharedManager]
drawerVisualStateBlockForDrawerSide:drawerSide];
if(block){
block(drawerController, drawerSide, percentVisible);
}
}];
[self.navigationController pushViewController:drawerController animated:isAnimate];
Использование раскадровки (https://github.com/TomSwift/MMDrawerController-Storyboard). Добавьте MMDrawerController+Storyboard
, а затем замените или проверьте раскадровку, которая использовалась в приведенной выше демонстрации, и добавьте код в AppDelegate в соответствии с демонстрацией.
Итак, ваш демонстрационный проект будет выглядеть, как показано ниже
Попробуйте SWRevealViewController. Я думаю, это может удовлетворить все ваши требования. Это хорошо задокументировано, поэтому здесь не нужно много говорить.
Похожие вопросы
Связанные вопросы
Новые вопросы
ios
iOS - мобильная операционная система, работающая на Apple iPhone, iPod touch и iPad. Используйте этот тег [ios] для вопросов, связанных с программированием на платформе iOS. Используйте связанные теги [target-c] и [swift] для проблем, характерных для этих языков программирования.