在Appdelegate里面添加,默认在标签栏的每个视图控制器中都可以左右滑动
LeftViewController *leftCtrl = [[LeftViewController alloc] init];
RightViewController *rightCtrl = [[RightViewController alloc] init];
//创建对象 设置3个位置的视图
MMDrawerController *mmdCtrl = [[MMDrawerController alloc] initWithCenterViewController:root leftDrawerViewController:leftCtrl rightDrawerViewController:rightCtrl];
//设置左右滑出距离
[mmdCtrl setMaximumLeftDrawerWidth:150];
[mmdCtrl setMaximumRightDrawerWidth:100];
//设置手势
[mmdCtrl setOpenDrawerGestureModeMask:MMOpenDrawerGestureModeAll];
[mmdCtrl setCloseDrawerGestureModeMask:MMCloseDrawerGestureModeAll];
self.window.rootViewController = mmdCtrl;
如果想要只在一个视图控制器里显示抽屉效果修改如下
//1.修改框架里面的方法
-(MMDrawerController*)mm_drawerController{
// if([self.parentViewController isKindOfClass:[MMDrawerController class]]){
// return (MMDrawerController*)self.parentViewController;
// }
// else if([self.parentViewController isKindOfClass:[UINavigationController class]] &&
// [self.parentViewController.parentViewController isKindOfClass:[MMDrawerController class]]){
// return (MMDrawerController*)[self.parentViewController parentViewController];
// }
// else{
// return nil;
// }
UIViewController *parentCtrl = self.parentViewController;
while (parentCtrl) {
if ([parentCtrl isKindOfClass:[MMDrawerController class]]) {
return (MMDrawerController *)parentCtrl;
}
parentCtrl = parentCtrl.parentViewController;
}
return nil;
}
//2.在想要开启滑动的视图的方法里面这样写
//试图将要显示时打开开启和关闭手势
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[self.mm_drawerController setOpenDrawerGestureModeMask:MMOpenDrawerGestureModeAll];
[self.mm_drawerController setCloseDrawerGestureModeMask:MMCloseDrawerGestureModeAll];
}
//视图将要消失时关闭打开和关闭手势
- (void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
[self.mm_drawerController setOpenDrawerGestureModeMask:MMOpenDrawerGestureModeNone];
[self.mm_drawerController setCloseDrawerGestureModeMask:MMCloseDrawerGestureModeNone];
}