详解Android NavigationController 右滑手势的方法

来源:爱站网时间:2018-11-17编辑:网友分享
大家都知道苹果手机的系统都是IOS的,但是随着IOS的不断升级,有些功能大家都用的不是很习惯,下文是详解Android NavigationController 右滑手势的方法,一起跟着爱站技术频道小编来了解吧!

大家都知道苹果手机的系统都是IOS的,但是随着IOS的不断升级,有些功能大家都用的不是很习惯,下文是详解Android NavigationController 右滑手势的方法,一起跟着爱站技术频道小编来了解吧!

详解Android NavigationController 右滑手势的方法

1.重新设置手势的delegate

 


self.navigationController.interactivePopGestureRecognizer.delegate = (id)self;

 

2.当然你也可以自己响应这个手势的事件

 


[self.navigationController.interactivePopGestureRecognizer addTarget:self action:@selector(handleGesture:)];

 

有更多方法以后继续补充,这里可以根据自己需要进行选择,如果只是简单定制了返回按钮,第一种最简单,一句代码搞定。

问题二:ios开发 向右滑动手势实现返回.在NavigationController中如何设置

在navigationController中实现向右滑动 返回功能

系统提供的backbarbuttonitem,不用添加任何代码即可实现向右滑动后退功能,但是往往要对按钮修改样式等时,就需要自定义leftbarbuttonitem,此时向右滑动即失效.通过下面方法即可解决该问题.(本人亲自实验过)

主要是通过设置navigationController.interactivePopGestureRecognizer 此手势的一些属性,此手势大家可以通过sdk查看说明,这里不细说

1. self.navigationController.interactivePopGestureRecognizer.enabled = YES | NO;      手势有效与否

2. self.navigationController.interactivePopGestureRecognizer.delegate = self;               手势的代理,一般会设置为self

1中的属性,再viewcontroller中默认的设置为YES,即手势有效.按照2中的属性设置后,当前的viewcontroller即可以实现该向右滑动后退功能,但是当回到navigationController的rootView中再次做出向右滑动时,程序会有问题(再次push子controller时,程序卡在当前界面无法跳转).有效解决方案如下:

说明:有两个controllerA,B

navigationController的rootview设置为A,在A中点击按钮后push B.在A的 -(void)viewDidAppear:(BOOL)animated方法中加入self.navigationController.interactivePopGestureRecognizer.enabled = NO;代码如下:
- (void)viewDidAppear:(BOOL)animated
{
  if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0) {
    self.navigationController.interactivePopGestureRecognizer.enabled = NO;  //让rootView禁止滑动
  }
}

然后再B中的- (void)viewDidLoad方法中加入

- (void)viewDidLoad
{
  // 配置返回按钮
  UIBarButtonItem * backItem = [self barButtonForImageNames:@[@"icon-返回", @"", @""] action:@selector(popBack)];
  backItem.title = @"";
  if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0) {
    self.navigationController.interactivePopGestureRecognizer.enabled = YES;
    self.navigationController.interactivePopGestureRecognizer.delegate = self;
  }
  self.navigationItem.leftBarButtonItem = backItem;

  if ([[[UIDevice currentDevice] systemVersion] floatValue]
 >= 7.0) {

    self.navigationController.interactivePopGestureRecognizer.delegate = self; 
  }
}

这样即可以保证再A中向右滑动后再次pushB时不会卡在A界面.

再项目中大家一般会创建风格统一的界面,一般都会创建一个基础viewcontroller,再此viewcontroller扩展一个配置leftbarbutton的方法,在该方法中加入B的viewDidLoad中的代码,这样在创建leftbarbutton的同时,直接加了返回的操作(不用每个viewController中都加入这样一段代码).然后只在navigationController的rootView中加入A的(void)viewDidAppear:(BOOL)animated方法即可.

以上内容是详解Android NavigationController 右滑手势的方法,希望大家喜欢,也希望大家继续支持爱站技术频道!

上一篇:IOS中UIControl控件的优势

下一篇:演示iOS之基本的位置功能

您可能感兴趣的文章

相关阅读

热门软件源码

最新软件源码下载