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

            }];

    }

 

因为博主也是初学 有些地方讲的不是很好  希望指正。同时但愿可以帮助你们在实际开发中速速解决类似这块的问题

 

posted @ 2014-08-15 14:45  Billy_chou  阅读(1167)  评论(0编辑  收藏  举报