Я хочу создать выдвижную панель навигации для обеих сторон (слева и справа) с помощью segue. Некоторые вещи, которым я должен следовать в этом случае. Таблица меню слева и справа должна быть в UIViewController (не в UITableViewController), а все viewController перемещаются через UINavigationController (встроено).

Я уже пробовал массу примеров, но все они созданы UITableViewController. Из-за этого я не могу настроить левую или правую таблицу меню в соответствии с моим дизайном.

Если бы кто-нибудь мог дать мне какую-нибудь ссылку или аналогичные уроки, это было бы очень заметно.

Большое спасибо заранее. Хорошего дня.

2
Tulon 9 Фев 2015 в 14:01

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 в соответствии с демонстрацией.

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

enter image description here

5
ChintaN -Maddy- Ramani 9 Фев 2015 в 13:24

Попробуйте SWRevealViewController. Я думаю, это может удовлетворить все ваши требования. Это хорошо задокументировано, поэтому здесь не нужно много говорить.

1
ShahiM 9 Фев 2015 в 12:28