2015-02-09 2 views
2

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

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

Если кто-нибудь может дать мне некоторые справочные или похожие учебники, это было бы очень заметно.

Большое спасибо в продвинутом виде. Хорошего дня.

ответ

5

вы можете использовать MMDrawcontroller и пройти LeftView, RightView и Centerview с помощью Navigationcontroller. Все три контроллера: UIViewController. Вы также можете добавить Left и Right View с 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

+0

Спасибо за ваш комментарий. Но zip-файл, который я загружаю отсюда, у него нет никакого файла раскадровки. :( Я немного медленный. Надеюсь, вы не против. :) – Tulon

+1

@ Тулон попробует это (https://github.com/TomSwift/MMDrawerController-Storyboard), возможно, это поможет вам. –

+0

Большое спасибо. Мне кажется здорово, но git, который вы мне предоставили в последний раз, я не могу заставить его работать на моем устройстве. Из-за ошибки clang: error: linker с кодом выхода 1 (используйте -v для просмотра вызова) 'error. – Tulon

1

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

+0

Я уже пытаюсь с этим. Он имеет только «RevealControllerStoryboardExample2» для раскадровки, где они работают только с левой частью меню с помощью 'UITableViewController'. Но мне нужно меню слева и справа, а tableView будет встроен в 'UIViewController'. – Tulon

+1

посмотреть эту тему - http://stackoverflow.com/questions/24517100/swrevealviewcontroller-rightviewcontroller – ShahiM