码迷,mamicode.com
首页 > 其他好文 > 详细

navigation 定义leftBarButtonItem 无法滑动返回的解决方案

时间:2015-07-22 18:22:00      阅读:108      评论:0      收藏:0      [点我收藏+]

标签:

iOS 的导航栏定义leftBarButtonItem 默认的滑动返回 会失效

  1. [_currentNav pushViewController:viewController animated:YES];  
  2. //开启iOS7的滑动返回效果  
  3. if ([_currentNav respondsToSelector:@selector(interactivePopGestureRecognizer)]) {  
  4.     _currentNav.interactivePopGestureRecognizer.delegate = nil;  

添加如上代码即可解决问题

当然网上还有一种解决方法是在设置leftBarButtonItem之后加上:

  1. self.navigationItem.backBarButtonItem = backButton;  
  2. self.navigationController.interactivePopGestureRecognizer.delegate = self; 

但这两行代码必须放在viewWillAppear中,相比上一种方式要修改的代码更多,因此建议使用上一种方式。

响应了iOS7的滑动返回手势之后,我们还会发现一个问题,iOS7的滑动返回不会调用我们给leftBarButtonItem设置的回调,那么返回的事件如何捕捉呢?可以通过以下代码:

  1. - (void)viewWillDisappear: (BOOL)animated  
  2. {  
  3.     [super viewWillDisappear: animated];  
  4.     if (![[self.navigationController viewControllers] containsObject: self])  
  5.     {  
  6.         // the view has been removed from the navigation stack, back is probably the cause  
  7.         // this will be slow with a large stack however.  
  8.     }  

 

navigation 定义leftBarButtonItem 无法滑动返回的解决方案

标签:

原文地址:http://www.cnblogs.com/juvham/p/4668065.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!