您的位置:首页 > 移动开发 > IOS开发

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方法里

}

欢迎交流。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐