我想使用segue
为双方(左侧和右侧)构建一个“滑出导航”面板。在这种情况下我必须遵循的一些事情。左边&右侧菜单表必须位于UIViewController
(不在UITableViewController
)&所有viewController
都在UINavigationController
(嵌入式)中导航。
我已经尝试了很多例子,但所有这些例子都是由UITableViewController
完成的。因为我无法根据我的设计自定义我的左侧或右侧菜单表。
如果有人可以给我一些参考或类似的教程,那将是非常值得注意的。
非常感谢先进。祝你有个美好的一天。
答案 0 :(得分:5)
您可以使用MMDrawcontroller并使用NavigationController传递LeftView,RightView和Centerview。所有三个控制器都是UIViewController
。您还可以使用与CenterView相同的NavigationController添加左视图和右视图,以便您可以从左视图和右视图进行推送。
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
,然后替换或检查上面演示中使用的Storyboard,并根据演示在AppDelegate中添加代码。
因此,您的演示项目将如下图所示
答案 1 :(得分:1)
试试SWRevealViewController。我认为这可能符合您的所有要求。它有详细记录,所以这里没有必要说太多。