关于ECSlidingViewController的使用
ECSlidingViewController 是个很好用的第三方库, 也称为 "Side Menu". github上也做了很多介绍(ECSlidingViewController)
首先我们看下使用这个第三方库的效果:点击左侧菜单则会滑动到如右图所示
利用cocoapods管理工具把这个第三方库加入到你的项目中来(类库的版本号根据你的项目需求来写吧),下面我是以1.3的版本号来说说它的使用方法吧
1.创建好导航栏上的左侧菜单按钮(这里就不细讲了,相信大家都会)
接下来我们在appdelegate 中 didFinishLaunchingWithOptions 方法中写如下代码
UpViewController *UpView= [[UpViewController alloc] init];//app启动时最先呈现的界面
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:UpView];创建导航控制器并把upview做为它的根视图控制器
ECSlidingViewController *EC = [[ECSlidingViewController alloc] init];//初始化ECSlidingViewController的实例
[EC setTopViewController:nav]; //把导航视图控制器设为EC的顶部视图控制器
[EC setAnchorRightPeekAmount:100];//设置右滑的宽度
[self.window setRootViewController:EC];//最终设置EC为根视图控制器
2 我们可以在UpViewController中的ViewWillAppear方法中写上如下代码:
if (![self.slidingViewController.underLeftViewController isKindOfClass:[DownViewController class]]) {
self.slidingViewController.underLeftViewController = [[DownViewController alloc] init];
//创建底部控制器
}
[self.navigationController.view addGestureRecognizer:self.slidingViewController.panGesture];
//给upviewcontroller加了一个左滑手势
3.点击菜单按钮时调用的方法
[self.slidingViewController anchorTopViewTo:ECRight];
上述只是做了一个简单的滑动效果介绍
但实际项目中如果我们这个DownViewController中有个tableview 其里面的每个cell都会跳转到不同的界面这时我们需要做以下的工作了:
在tableview的didSelectRowAtIndexPath方法中
首先 定义一个空的导航视图控制器 如下
UINavigationController *viewController = nil;
然后 就是你需要实例化跳转的视图控制器,并且一定要把你实例化的controller做为上述导航视图控制器的根视图控制器
viewController = [[UINavigationController alloc] initWithRootViewController:xxController];
最后 在方法末尾加上以下代码
if (viewController) {
[self.slidingViewController anchorTopViewOffScreenTo:ECHILD animations:nil onComplete:^{
CGRect frame = self.slidingViewController.topViewController.view.frame;
self.slidingViewController.topViewController = viewController;
self.slidingViewController.topViewController.view.frame = frame;
[self.slidingViewController resetTopView];
}];
}
因为博主也是初学 有些地方讲的不是很好 希望指正。同时但愿可以帮助你们在实际开发中速速解决类似这块的问题