美文网首页
swift之自定义导航栏后侧滑返回功能失效解决办法

swift之自定义导航栏后侧滑返回功能失效解决办法

作者: 苹果上的小豌豆 | 来源:发表于2018-12-17 11:31 被阅读0次

摘要:从iOS7开始,系统为UINavigationController提供了一个interactivePopGestureRecognizer用于右滑返回(pop),但是如果自定了当前视图控制器leftBarButtonItem,该手势就失效了。解决方法:自定义UINavigationController并实现其代理方法重新设置侧滑手势的代理。具体代码如下:classBaseNavigationController:UINavigationController,UINavigat 

从iOS7开始,系统为UINavigationController提供了一个interactivePopGestureRecognizer用于右滑返回(pop),但是如果自定了当前视图控制器leftBarButtonItem,该手势就失效了。

解决方法:自定义UINavigationController并实现其代理方法重新设置侧滑手势的代理。

具体代码如下:

class BaseNavigationController: UINavigationController ,UINavigationControllerDelegate { 

var popDelegate: UIGestureRecognizerDelegate? 

override func viewDidLoad() { 

super.viewDidLoad() 

self.popDelegate = self.interactivePopGestureRecognizer?.delegate 

self.delegate = self 

// MARK: - UINavigationControllerDelegate方法 

func navigationController(_ navigationController: UINavigationController, didShow viewController: UIViewController, animated: Bool) { 

if viewController == self.viewControllers[0] { 

self.interactivePopGestureRecognizer!.delegate = self.popDelegate 

else { 

self.interactivePopGestureRecognizer!.delegate = nil 

相关文章

网友评论

      本文标题:swift之自定义导航栏后侧滑返回功能失效解决办法

      本文链接:https://www.haomeiwen.com/subject/rgwrhqtx.html