2

我想用segue. 在这种情况下,我必须遵循一些事情。左侧和右侧菜单表必须在UIViewController(而不是UITableViewController)中,并且所有的viewController都是导航UINavigationController(嵌入)。

我已经尝试了很多示例,但所有示例都是由UITableViewController. 因此,我无法根据我的设计自定义左侧或右侧菜单表。

如果有人能给我一些参考或类似的教程,那将非常感激。

非常感谢先进。祝你有美好的一天。

4

2 回答 2

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];

使用Storyboard下载(https://github.com/TomSwift/MMDrawerController-Storyboard)。添加MMDrawerController+Storyboard然后替换或检查上面演示中使用的故事板,并根据演示在 AppDelegate 中添加代码。

所以您的演示项目将如下图所示

在此处输入图像描述

于 2015-02-09T11:08:00.703 回答
1

尝试SWRevealViewController。我认为这可能满足您的所有要求。它有据可查,所以这里没有必要多说。

于 2015-02-09T12:28:54.740 回答