iOS 自定义返回按钮,保留系统滑动返回
2016-09-26 10:45
495 查看
1.简介
使用苹果手机,最喜欢的就是用它的滑动返回.作为一个开发者,我们在编写很多页面的时候,总是会因为这样那样的原因使得系统的滑动返回不可用.使用导航栏push出一个控制器,我们在控制器中自定义了一个返回按钮.这样系统默认的滑动返回手势效果就没有了.2.解决方法
[1]从A这个控制器push到B这个控制器,我们想要自定义B的返回按钮,我们可以在A中设置self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"王俨" style:UIBarButtonItemStylePlain target:nil action:nil];
[2]在B控制器设置返回按钮,我想这应该是大多数人喜欢的选择,可是当我们在B控制器中设置
self.navigationItem.leftBarButtonItem后发现系统的滑动返回手势失效了.那么如何可以保留系统的滑动返回手势了,我们可以B控制器中这样做.
@interface ViewController () @end@implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // 自定义返回按钮 UIButton *button = [[UIButton alloc]initWithFrame:CGRectMake(0, 0, 44, 44)]; [button setTitle:@"王俨2" forState:UIControlStateNormal]; [button setTitleColor:[UIColor blackColor] forState:UIControlStateNormal]; [button addTarget:self action:@selector(back:) forControlEvents:UIControlEventTouchUpInside]; self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc]initWithCustomView:button]; } - (void)back:(UIButton *)button { [self.navigationController popViewControllerAnimated:YES]; } - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; if (self.navigationController.viewControllers.count > 1) { // 记录系统返回手势的代理 _delegate = self.navigationController.interactivePopGestureRecognizer.delegate; // 设置系统返回手势的代理为当前控制器 self.navigationController.interactivePopGestureRecognizer.delegate = self; } } - (void)viewWillDisappear:(BOOL)animated { [super viewWillDisappear:animated]; // 设置系统返回手势的代理为我们刚进入控制器的时候记录的系统的返回手势代理 self.navigationController.interactivePopGestureRecognizer.delegate = _delegate; }#pragma mark - UIGestureRecognizerDelegate- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer { return self.navigationController.childViewControllers.count > 1; } - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer { return self.navigationController.viewControllers.count > 1; }@end
相关文章推荐
- iOS 自定义返回按钮,保留系统滑动返回
- iOS 自定义返回按钮保留系统滑动返回功能
- iOS 自定义返回按钮,保留系统滑动返回
- IOS-自定义返回按钮,保留系统滑动返回
- iOS自定义返回按钮,保留系统侧滑返回手势
- iOS手势(滑动)返回的实现(自定义返回按钮)
- 隐藏系统返回按钮,保留系统滑动返回
- IOS 自定义返回按钮 滑动返回假死解决方法
- iOS彩票项目--第五天,新特性引导页的封装、返回按钮的自定义、导航控制器的滑动返回以及自定义滑动返回功能
- iOS手势(滑动)返回的实现(自定义返回按钮)
- iOS “自定义返回按钮”与“系统侧滑”的组合使用
- iOS覆盖系统返回按钮后,滑动返回功能
- iOS 开发 系统返回按钮隐藏文字、自定义文字
- iOS “自定义返回按钮”与“系统侧滑”的组合使用
- ios7.0后,从左侧边缘向右滑动会自动返回上一级页面,但自定义的返回按钮在此情况下会崩
- IOS开发OC 如何将导航栏左侧系统自动生成的返回按钮的文字去掉,只保留小于号"<"图案
- iOS开发学习之利用系统远程UITableView 自定义滑动删除按钮、增加自定义滑动按钮方法
- iOS开发--iOS7以上自定义leftBarButtonItem后系统滑动返回失效的完美解决方案
- iOS 自定义UINavigationController返回按钮
- 仿新浪微博IOS客户端(v5.2.8)——自定义UITabBar替换系统默认的(添加“+”号按钮)