前提条件,存在A和B两个页面,A是主界面,A push 到 B

方法一:如果B页面的返回按钮要用自定义的按钮(在iOS7中,如果使用了UINavigationController,那么系统自带的附加了一个从屏幕左边缘开始滑动可以实现pop的手势。但是,如果自定义了navigationItem的leftBarButtonItem,那么这个手势就会失效。)

在A界面:

- (void)viewDidAppear:(BOOL)animated {

self.navigationController.interactivePopGestureRecognizer.delegate = (id)self;//重新设置代理

self.navigationController.interactivePopGestureRecognizer.enabled = NO;//本页面不能右滑

}

在B里面:

设置返回按钮:

UIButton *backBtn = [UIButton buttonWithType:UIButtonTypeCustom];

backBtn.frame = CGRectMake(5, 2, 21, 35);

[backBtn setImage:[UIImage imageNamed:@"back"] forState:UIControlStateNormal];

[[backBtn rac_signalForControlEvents:UIControlEventTouchUpInside] subscribeNext:^(id x) {

[self.navigationController popViewControllerAnimated:YES];

}];

UIBarButtonItem *backItem = [[UIBarButtonItem alloc] initWithCustomView:backBtn];

self.navigationItem.leftBarButtonItem = backItem;

self.navigationController.interactivePopGestureRecognizer.enabled = YES;//最重要的一步

方法二:在A页面里面(A页面里面的backBarButtonItem其实就是我们看到的B页面的返回按钮,B页面的leftBar是左侧的按钮,注意优先级,B里面有自定义leftBar,显示B页面的,如果没有,看A界面,如果里面有backBarButtonItem,显示,如果没有,就是系统默认的那个)

UIImage* image = [UIImage imageNamed:@"back"];

UIBarButtonItem *item = [[UIBarButtonItem alloc] init];

[item setBackButtonBackgroundImage:[image resizableImageWithCapInsets:UIEdgeInsetsMake(0, image.size.width, 0, 0)] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];

[item setBackButtonTitlePositionAdjustment:UIOffsetMake(-400.f, 0) forBarMetrics:UIBarMetricsDefault];

self.navigationItem.backBarButtonItem = item;

self.navigationItem.backBarButtonItem = item;

我采用的是方法一,方法二我没有办法调整返回按钮的位置

转载于:https://www.cnblogs.com/zhangxueke/p/7365180.html

iOS app 右滑返回相关推荐

  1. iOS 右滑返回失效问题终极解决方案

    iOS 的右滑返回是必不可少的一项功能,否则用户体验会大打折扣,但是会经常会碰到某些页面右滑返回失效的情况,下面记录一下解决各种情况下右滑返回失效的方法: 1. 自定义返回按钮 如果页面上是自定义的返 ...

  2. ios开发返回按钮消失_iOS开发之自定义导航栏返回按钮右滑返回手势失效的解决...

    我相信针对每一个iOS开发者来说~除了根视图控制器外~所有的界面通过导航栏push过去的界面都是可以通过右滑来返回上一个界面~其实~在很多应用和APP中~用户已经习惯了这个功能~然而~作为开发者的我们 ...

  3. 【转】iOS右滑返回手势全解和最佳实施方案

    序言 在ios7以后,苹果推出了手势滑动返回功能,也就是从屏幕左侧向右滑动可返回上一个界面.大大提高了APP在大屏手机和iPad上的操作体验,场景切换更加流畅.做右滑返回手势配置时,可能会遇到的 问题 ...

  4. iOS 为自定义返回按钮的页面添加右滑返回

    2019独角兽企业重金招聘Python工程师标准>>> 苹果一直都在人机交互中尽力做到极致,在iOS7中,新增加了一个小小的功能,也就是这个api:self.navigationCo ...

  5. App开发流程之右滑返回手势功能续

    上一篇记录了利用系统私有变量和方法实现右滑返回手势功能:http://www.cnblogs.com/ALongWay/p/5893515.html 这篇继续记录另一种方案:利用UINavigatio ...

  6. 禁用导航栏的右滑返回实现全屏手势返回

    今天发现项目中push 的也面的右滑都无法pop 查阅相关资料发现 导航栏右滑手势失效基本有两种情况 1: self.navigationController.interactivePopGestur ...

  7. ios7自定义返回按钮后,右滑返回功能失效解决方法

    ios7自定义返回按钮后,右滑返回功能失效解决方法 -(void)viewWillAppear:(BOOL)animated{ [super viewWillAppear:animated]; //开 ...

  8. 苹果侧边滑动返回_iOS系统右滑返回手势问题及解决方案

    在iOS7之后,苹果推出了手势滑动返回功能,也就是从屏幕左侧向右滑动可返回上一个界面.大大提高了APP在大屏手机和iPad上的操作体验,场景切换更加流畅. 常见的问题有: 1.右滑手势失效 2.右滑手 ...

  9. android右滑返回动画,Android仿微信右滑返回功能的实例代码

    先上效果图,如下: 先分析一下功能的主要技术点,右滑即手势判断,当滑到一直距离时才执行返回,并且手指按下的位置是在屏幕的最左边(这个也是有一定范围的),  这些可以实现onTouchEvent来实现. ...

最新文章

  1. Ubuntu终端回收站
  2. 深入浅出CMake(一):基础篇
  3. 第三十一讲 非线性微分自治方程组及图解
  4. k8s之CRD定义map[string]interface{}类型
  5. array_merge
  6. 【转】js之iframe子页面与父页面通信
  7. 搞硬件,钱少破事多,只能另谋出路!
  8. LeetCode—33. 搜索旋转排序数组
  9. 前端学习(2868):vue3数据劫持解析3
  10. AutoMapper 9.0的改造
  11. 电脑fps低怎么办_电脑想要英雄联盟玩的流畅,主要看哪几个方面?
  12. 130 行代码模仿火爆抖音的“蚂蚁呀嘿”特效,你学会了吗?
  13. 使用剪切板[3]: SetComponent、GetComponent
  14. hdu 4355 Party All the Time
  15. Android View动画
  16. C/C++ 图像二进制存储与读取
  17. 【MisakaHookFinder使用方法】关于如何提取一个文字游戏的文本钩子以供翻译的方法
  18. DES算法是对称算法吗,能否通过在线工具进行DES解密?
  19. oracle服务名XDB_Oracle XDB和XPT
  20. Python开发——8.模块

热门文章

  1. 逆向工具之IDA的使用
  2. 十进制数转换为二进制数
  3. identifier of an instance of was altered from to n
  4. mac os 和 ubuntu 上测试工具check-0.9.10的安装
  5. 【C/C++多线程编程之六】pthread互斥量
  6. C++其他进制转十进制
  7. Java小结(二)——打印矩形和九九乘法表
  8. android纹理缓存,Android OpenGLES(七) 理解纹理与纹理过滤
  9. Linux Kernel 3.10内核源码分析--块设备层request plug/unplug机制
  10. matlab期末试题,Matlab期末考试试题库(共12套卷)