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;

}


MMDrawerController 使用遇到的问题及定制的更多相关文章

  1. ASP.NET Core应用的错误处理[3]:ExceptionHandlerMiddleware中间件如何呈现“定制化错误页面”

    DeveloperExceptionPageMiddleware中间件利用呈现出来的错误页面实现抛出异常和当前请求的详细信息以辅助开发人员更好地进行纠错诊断工作,而ExceptionHandlerMi ...

  2. Webstorm+Webpack+echarts构建个性化定制的数据可视化图表&&两个echarts详细教程(柱状图,南丁格尔图)

    Webstorm+Webpack+echarts   ECharts 特性介绍 ECharts,一个纯 Javascript 的图表库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(I ...

  3. 标准产品+定制开发:专注打造企业OA、智慧政务云平台——山东森普软件,交付率最高的技术型软件公司

    一.公司简介山东森普信息技术有限公司(以下简称森普软件)是一家专门致力于移动互联网产品.企业管理软件定制开发的技术型企业.公司总部设在全国五大软件园之一的济南齐鲁软件园.森普SimPro是由Simpl ...

  4. Gradle 实现 Android 多渠道定制化打包

    Gradle 实现 Android 多渠道定制化打包 版权声明:本文为博主原创文章,未经博主允许不得转载. 最近在项目中遇到需要实现 Apk 多渠道.定制化打包, Google .百度查找了一些资料, ...

  5. Xamarin+Prism小试牛刀:定制跨平台Outlook邮箱应用(后续)

    在[Xamarin+Prism小试牛刀:定制跨平台Outlook邮箱应用]里面提到了Microsoft 身份认证,其实这也是一大块需要注意的地方,特作为后续补充这些知识点.上章是使用了Microsof ...

  6. Django admin定制化,User字段扩展[原创]

    前言 参考上篇博文,我们利用了OneToOneField的方式使用了django自带的user,http://www.cnblogs.com/caseast/p/5909248.html , 但这么用 ...

  7. 用Kotlin实现Android定制视图(KAD 06)

    作者:Antonio Leiva 时间:Dec 27, 2016 原文链接:https://antonioleiva.com/custom-views-android-kotlin/ 在我们阅读有关c ...

  8. CSharpGL(28)得到高精度可定制字形贴图的极简方法

    CSharpGL(28)得到高精度可定制字形贴图的极简方法 回顾 以前我用SharpFont实现了解析TTF文件从而获取字形贴图的功能,并最终实现了用OpenGL渲染文字. 使用SharpFont,美 ...

  9. 不懂CSS也能定制博客界面!

    之前没想过定制博客界面,毕竟CSS,HTML什么的都不懂,不过看了这篇文章分分钟搞定: [详细图解]一步一步教你自定义博客园(cnblog)界面 我是基于模板BlueSky做了些改动,先看修改前后的效 ...

随机推荐

  1. HDOJ 1016 Prime Ring Problem素数环【深搜】

    Problem Description A ring is compose of n circles as shown in diagram. Put natural number 1, 2, -, ...

  2. Windows 10 代理上网用户的正确使用姿势

      1.找不到IE,如何使用IE来配置局域网代理 打开Edge浏览器,点击选项,找到“使用Internet Explorer打开” 接下来可以使用熟练的姿势设置IE局域网代理上网了 2.Windows ...

  3. POJ2533 Longest ordered subsequence

    Longest Ordered Subsequence Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 41984   Acc ...

  4. c宏的MAX函数

    今天从香山上面回来累的跟傻逼一样,回来问了一下胡总的阿里面试的问题.然后其中有一个是宏写max函数.胡总说不好写,然后我就去洗澡了. 洗澡的时候感觉不对啊,回来写了一个: #define MAX(a, ...

  5. 【bzoj3943】[Usaco2015 Feb]SuperBull

    题目描述 Bessie and her friends are playing hoofball in the annual Superbull championship, and Farmer Jo ...

  6. iOS 设备和外部配件的通讯

    首先,如果我们的应用程序想跟外设传输数据,先要透过iphone的操作系统,也就是iphoneOS,而最开始的认证过程也是在外设和iphoneOS之间发生的,苹果为这个过程提供了一颗认证芯片(这颗芯片的 ...

  7. hash表的创建

    功能:创建一个hash table.假设有处理冲突,则採用再散列法放置该元素 代码參考<零基础学数据结构> 代码例如以下: root@ubuntu:/mnt/shared/appbox/h ...

  8. server的散热和Linux中温度的检測

    当server被放在散热条件不好的条件下,这样会导致硬盘驱动过早损坏,而且server其它的组件也会非常快出现问题. 现代的server主板检測到CPU过热的时候,一般会限制CPU的频率,所以即使se ...

  9. Android TagFlowLayout完全解析 一款针对Tag的布局(转)

    一.概述 本文之前,先提一下关于上篇博文的100多万访问量请无视,博文被刷,我也很郁闷,本来想把那个文章放到草稿箱,结果放不进去,还把日期弄更新了,实属无奈. ok,开始今天的博文,今天要说的是Tag ...

  10. Linux磁盘分区实战案例

    一.查看新添加磁盘   [root@localhost /]# fdisk -l   磁盘 /dev/sda:53.7 GB, 53687091200 字节,104857600 个扇区 Units = ...