1. @interface ViewController () <uigesturerecognizerdelegate>
  2. @end@implementation ViewController
  3. - (void)viewDidLoad {
  4. [super viewDidLoad]; // 自定义返回按钮
  5. UIButton *button = [[UIButton alloc]initWithFrame:CGRectMake(, , , )];
  6. [button setTitle:@"王俨2" forState:UIControlStateNormal];
  7. [button setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
  8. [button addTarget:self action:@selector(back:) forControlEvents:UIControlEventTouchUpInside]; self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc]initWithCustomView:button];
  9. }
  10.  
  11. - (void)back:(UIButton *)button {
  12. [self.navigationController popViewControllerAnimated:YES];
  13. }
  14.  
  15. - (void)viewWillAppear:(BOOL)animated {
  16. [super viewWillAppear:animated]; if (self.navigationController.viewControllers.count > ) { // 记录系统返回手势的代理
  17. _delegate = self.navigationController.interactivePopGestureRecognizer.delegate; // 设置系统返回手势的代理为当前控制器
  18. self.navigationController.interactivePopGestureRecognizer.delegate = self;
  19. }
  20. }
  21.  
  22. - (void)viewWillDisappear:(BOOL)animated {
  23. [super viewWillDisappear:animated]; // 设置系统返回手势的代理为我们刚进入控制器的时候记录的系统的返回手势代理
  24. self.navigationController.interactivePopGestureRecognizer.delegate = _delegate;
  25. }
  26. #pragma mark - UIGestureRecognizerDelegate- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer { return self.navigationController.childViewControllers.count > 1;
  27. }
  28.  
  29. - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer { return self.navigationController.viewControllers.count > ;
  30. }@end

1.使用自定义nav item之后,默认的右滑返回的手势不可以使用

2.进入控制器之前,把系统的Delegate保存起来,视图加载将要完成设置给默认的右滑手势

第二十六篇、因为自定item(nav)而使系统右滑返回手势失效的解决方法的更多相关文章

  1. 第十三篇、Swift_Nav自定义返回按钮后或者隐藏导航栏,Pop返回手势失效的解决方法 Pop全局返回添加的方法

    边缘的pop返回手势: override func viewDidLoad() { super.viewDidLoad() view.backgroundColor = UIColor.purple ...

  2. 第二十六篇 jQuery 学习8 遍历-父亲兄弟子孙元素

    jQuery 学习8 遍历-父亲兄弟子孙元素   jQuery遍历,可以理解为“移动”,使用“移动”还获取其他的元素.   什么意思呢?老师举一个例子: 班上30位同学,我是新来负责教这个班学生的老师 ...

  3. 第二十六篇:两个SOUI新控件 ---- SListView和SComboView(借用Andorid的设计)

    SOUI原来实现的SListBoxEx的效率一直是我对SOUI不太满意的地方.包括后来网友实现的SListCtrlEx. 这类控件为每一个列表项创建一个SWindow来容纳数据,当数据量比较大(100 ...

  4. Python之路(第二十六篇) 面向对象进阶:内置方法

    一.__getattribute__ object.__getattribute__(self, name) 无条件被调用,通过实例访问属性.如果class中定义了__getattr__(),则__g ...

  5. 第二十六篇-单击事件、Toast(提示框信息)

    单击事件有3种方法: 第一种: layout.xml <?xml version="1.0" encoding="utf-8"?> <Line ...

  6. SpringBoot非官方教程 | 第二十六篇: sprinboot整合elk,搭建实时日志平台

    转载请标明出处: 原文首发于https://www.fangzhipeng.com/springboot/2017/07/11/sprinboot25-elk/ 本文出自方志朋的博客 这篇文章主要介绍 ...

  7. 第二十六篇 -- wifi学习

    参考网址:https://blog.csdn.net/zwl1584671413/article/details/77936950 https://blog.csdn.net/Righthek/art ...

  8. 第二十六篇:USB3.0高带宽ISO(48KBytes/125us)实战

    USB3.1技术已经推出, 10Gbps的速率足以满足数据, HD视频传输的要求. 要步入USB3.1的研发, 还得将USB3.0的基础打扎实. 微软提供的SUPER MUTT仅仅包括一个接口0, 其 ...

  9. flask第二十六篇——模板【控制语句】【2】

    如果你也在学flask,就请加船长的公众号:自动化测试实战 我们先补充一下for循环的知识,我们之前说过,flask是由Jinja2+sqlAlchemy+werkzeug组成的,我们现在学的控制语句 ...

随机推荐

  1. 第九章、文件与文件系统的压缩与打包 3. 打包命令: tar

    打包命令: tar gzip 与 bzip2 也能够针对目录来进行压缩, 不过,这两个命令对目录的压缩指的是『将目录内的所有文件 "分别" 进行压缩』! 将多个文件或目录包成一个大 ...

  2. 求前几日的平均值用obj.reduce()方法

    const average = data=>data.map((item, idx, origin)=>Math.round(origin.slice(0,idx+1).reduce((a ...

  3. C#中让窗体自动靠边隐藏

    1: private void Yincangtimer_Tick(object sender, EventArgs e)//窗体隐藏事件 2: { 3: int a = Control.MouseP ...

  4. 剑指OFFER之树的子结构(九度OJ1520)

    题目描述: 输入两颗二叉树A,B,判断B是不是A的子结构. 输入: 输入可能包含多个测试样例,输入以EOF结束.对于每个测试案例,输入的第一行一个整数n,m(1<=n<=1000,1< ...

  5. JNI函数复杂对象传递

    主要操作内容,包括如下几个部分: 1.在Native层返回一个字符串 2.从Native层返回一个int型二维数组(int a[ ][ ]) 3.从Native层操作Java层的类: 读取/设置类属性 ...

  6. 安装builderRobot到Rational Functional Tester和Performance Tester

    最近研究安装builder,稍微总结一下,以后继续补充: 1. Robot采用专业的测试脚本语言, 从而导致需要学习专门的API以及专门的语法外, 用进程化的Visual Basic作为脚本语言, 导 ...

  7. ThinkPHP CURD方法盘点:data方法

    data方法也是模型类的连贯操作方法之一,用于设置当前要操作的数据对象的值,可能大家不太习惯用这个方法,今天来讲解下如何用好data方法. 用法 写操作 通常情况下我们都是通过create方法或者赋值 ...

  8. [原创]如何写好SqlHelper

    所有写数据库应用的都会遇到SqlHelper.每个人实现的也不同,网上现成的例子也很多.但在实际操作中,大部分都不实用.什么样的才是实用的?答:适合应用场景的! 下面来介绍下我写的一个关于Oracle ...

  9. ant例子

    1.安装ant 下载解压→环境变量配置→cmd输入ant 出现 Buildfile: build.xml does not exist! 代表安装成功 参考文章:http://www.cnblogs. ...

  10. eclipse安装插件的方法,以python为例子

    一 转载自:http://www.cnblogs.com/linzhenjie/articles/2639113.html 1.基本需求 1.Eclipse 集成开发环境下载 http://115.c ...