博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MMDrawerController 使用遇到的问题及定制
阅读量:4710 次
发布时间:2019-06-10

本文共 3094 字,大约阅读时间需要 10 分钟。

MMDrawerController

1, 集成 UIViewController * leftDrawer = [[UIViewController alloc] init];UIViewController * center = [[UIViewController alloc] init];UIViewController * rightDrawer = [[UIViewController alloc] init]; MMDrawerController * drawerController = [[MMDrawerController alloc] initWithCenterViewController:center leftDrawerViewController:leftDrawer rightDrawerViewController:rightDrawer]; 详细代码

 

    tabVC = [[TabBarController alloc]init];

    

    //左边页面框架

    LeftPage *leftController = [[LeftPage alloc] init];

    

    

    self.drawerController = [[MMDrawerController alloc]

                             initWithCenterViewController:tabVC

                             leftDrawerViewController:leftController

                             rightDrawerViewController:nil];

    [self.drawerController setShowsShadow:NO];

    [self.drawerController setRestorationIdentifier:@"MMDrawer"];

    [self.drawerController setMaximumLeftDrawerWidth:260.0];

    // self.drawerController.visibleLeftDrawerWidth = 260;

    [self.drawerController setOpenDrawerGestureModeMask:MMOpenDrawerGestureModeAll];

    [self.drawerController setCloseDrawerGestureModeMask:MMCloseDrawerGestureModeAll];

    //侧滑推出风格

    [[MMExampleDrawerVisualStateManager sharedManager] setLeftDrawerAnimationType:1];

    

    [self.drawerController

     setDrawerVisualStateBlock:^(MMDrawerController *drawerController, MMDrawerSide drawerSide, CGFloat percentVisible) {

         MMDrawerControllerDrawerVisualStateBlock block;

         

         block = [[MMExampleDrawerVisualStateManager sharedManager]

                  drawerVisualStateBlockForDrawerSide:drawerSide];

         if(block){

             block(drawerController, drawerSide, percentVisible);

         }

     }];

    [self.window setRootViewController:self.drawerController];

重新定义主界面左上角按钮 事件

-(void)leftBtnPressed

{

   // [[(AppDelegate *)[[UIApplication sharedApplication] delegate] menuController] showLeftController:YES];

    [self.mm_drawerController toggleDrawerSide:MMDrawerSideLeft animated:YES completion:nil];

}

当点击左边头像回到主界面的时候,想回到主界面,demo是又重新创建的一个新的,在项目中不可取。 2,当主界面进入二级页面,想去除手势。实现定制。 在

MMDrawerController.h 添加 

/* 2016-5-10 mxt 添加

  是否开启手势滑动出菜单*/

@property (assign,nonatomic) BOOL needSwipeShowMenu;//是否开启手势滑动出菜单

 

MMDrawerController.m 添加 

 

 

#pragma mark - Helpers

-(void)setupGestureRecognizers{

    

    pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panGestureCallback:)];

    [pan setDelegate:self];

    

    //[self.view addGestureRecognizer:pan];

    

    

    tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapGestureCallback:)];

    [tap setDelegate:self];

    [self.view addGestureRecognizer:tap];

}

// 重写sett

- (void)setNeedSwipeShowMenu:(BOOL)needSwipeShowMenu{

    _needSwipeShowMenu = needSwipeShowMenu;

    if (needSwipeShowMenu) {

       // NSLog(@"--------needSwipeShowMenu---------------------------------- yes  ");

        [self.view addGestureRecognizer:pan];

    }else{

       // NSLog(@"--------needSwipeShowMenu---------------------------------- no  ");

          [self.view removeGestureRecognizer:pan];

    }

}

 

在使用的页面 添加 

 

- (void)viewDidAppear:(BOOL)animated

{

    [super viewDidAppear:animated];

    NSLog(@" mine viewDidAppear  yes");

    kAPPDelegate.drawerController.needSwipeShowMenu = YES;  

}

- (void)viewWillDisappear:(BOOL)animated

{

    kAPPDelegate.drawerController.needSwipeShowMenu = NO;

}

 

 

 

转载于:https://www.cnblogs.com/iOS-mt/p/5481179.html

你可能感兴趣的文章
Python入门学习笔记17(sqlalchemyd的使用)
查看>>
.NET CORE TOKEN 权限验证
查看>>
.Net Core 中间件之主机地址过滤(HostFiltering)源码解析
查看>>
Lucene.Net 2.3.1开发介绍 —— 一、接触Lucene.Net
查看>>
java PDF分页打印
查看>>
数链剖分小结
查看>>
应用nslookup命令查看A记录、MX记录、CNAME记录和NS记录
查看>>
APT攻击
查看>>
做衡八的日子(转自VFleaking)
查看>>
day7.条件和循环
查看>>
(转)log4j(二)——如何控制日志信息的输出?
查看>>
JavaScript简介
查看>>
php.ini中safe_mode开启对PHP系统函数的影响
查看>>
gdb
查看>>
字符串与整数、浮点数、无符号整数之间的转换常用函数
查看>>
ubuntu清理旧内核
查看>>
有关UIImageView+AFNetworking 下载图片的线程问题
查看>>
Node之安装篇
查看>>
Android的Animation之LayoutAnimation使用方法
查看>>
二分图最大匹配算法-Hopcroft-Karp模板
查看>>