iOS 解决自定义导航栏返回按钮 系统右滑返回手势失效问题 最简单方法
2016-08-24 15:49
736 查看
使用系统的返回按钮当然什么问题都没有,但是如果要自定义返回按钮 ,将会出现系统右滑手势失效的问题。网上解决方法很多。这里只简单提供一种较为简单的方法.
A控制器push到B控制器。
在B控制器里,首先加入如下代码:
self.navigationController.interactivePopGestureRecognizer.delegate = (id)self;
self.navigationController.interactivePopGestureRecognizer.enabled = YES;
并如下自定义返回按钮,注意最后使用leftBarButtonItem ,而不是其他网友推荐用的backBarButtonItem
UIButton *leftBtn = [UIButton buttonWithType:UIButtonTypeCustom];//自定义按钮
[leftBtn setBackgroundImage:[UIImage imageNamed:@"HRback_icon_1"] forState:(UIControlStateNormal)];
[leftBtn addTarget:self action:@selector(backLastView) forControlEvents:UIControlEventTouchUpInside];
leftBtn.frame = CGRectMake(0, 0, CountWidth(60), CountWidth(60));
UIBarButtonItem *leftItem =[[UIBarButtonItem alloc]initWithCustomView: leftBtn];
self.navigationItem.leftBarButtonItem = leftItem;
这样基本解决的自定义返回按钮 并且手势不失效的问题 ,但是存在一个问题。A控制器右滑后 页面出现卡死现象,网友依旧提供了一些不同的解决办法,我自己的办法是:
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
self.navigationController.interactivePopGestureRecognizer.enabled = NO;//一行代码解决问题,注意要写在viewDidAppear方法里
}
欢迎交流。
A控制器push到B控制器。
在B控制器里,首先加入如下代码:
self.navigationController.interactivePopGestureRecognizer.delegate = (id)self;
self.navigationController.interactivePopGestureRecognizer.enabled = YES;
并如下自定义返回按钮,注意最后使用leftBarButtonItem ,而不是其他网友推荐用的backBarButtonItem
UIButton *leftBtn = [UIButton buttonWithType:UIButtonTypeCustom];//自定义按钮
[leftBtn setBackgroundImage:[UIImage imageNamed:@"HRback_icon_1"] forState:(UIControlStateNormal)];
[leftBtn addTarget:self action:@selector(backLastView) forControlEvents:UIControlEventTouchUpInside];
leftBtn.frame = CGRectMake(0, 0, CountWidth(60), CountWidth(60));
UIBarButtonItem *leftItem =[[UIBarButtonItem alloc]initWithCustomView: leftBtn];
self.navigationItem.leftBarButtonItem = leftItem;
这样基本解决的自定义返回按钮 并且手势不失效的问题 ,但是存在一个问题。A控制器右滑后 页面出现卡死现象,网友依旧提供了一些不同的解决办法,我自己的办法是:
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
self.navigationController.interactivePopGestureRecognizer.enabled = NO;//一行代码解决问题,注意要写在viewDidAppear方法里
}
欢迎交流。
相关文章推荐
- 关于iOS自定义返回按钮右滑返回手势失效的解决:
- ios的swift解决系统手势返回的问题
- iOS开发之自定义导航栏返回按钮右滑返回手势失效的解决
- 自定义导航栏返回按钮右滑返回手势失效等问题
- iOS开发之自定义导航栏返回按钮右滑返回手势失效的解决
- iOS开发之自定义导航栏返回按钮右滑返回手势失效的解决
- 第二十六篇、因为自定item(nav)而使系统右滑返回手势失效的解决方法
- iOS开发之自定义导航栏返回按钮右滑返回手势失效的解决
- 关于iOS导航栏返回按钮问题的解决方法
- 实际iOS编程中遇到的自定义导航栏按钮,导致手势返回失效的解决方法
- iOS开发之自定义导航栏返回按钮右滑返回手势失效的解决
- iOS开发之自定义导航栏返回按钮右滑返回手势失效的解决
- iOS开发之自定义导航栏返回按钮右滑返回手势失效的解决---亲测是有效的。
- iOS开发之自定义导航栏返回按钮右滑返回手势失效的解决
- 第十三篇、Swift_Nav自定义返回按钮后或者隐藏导航栏,Pop返回手势失效的解决方法 Pop全局返回添加的方法
- Win7旗舰版系统还原按钮呈灰色不能使用问题的解决方法
- ios7之后自定义返回按钮后,右滑返回功能失效解决方法
- ios7自定义返回按钮后,右滑返回功能失效解决方法
- iOS重新定义系统自带的方法,如 重定义 CGRectMake 和 CGPointMake 可以解决屏幕适配的问题
- IOS 子视图touch,父视图Ges手势冲突问题解决方法