zoukankan      html  css  js  c++  java
  • 第十三篇、Swift_Nav自定义返回按钮后或者隐藏导航栏,Pop返回手势失效的解决方法 Pop全局返回添加的方法

    边缘的pop返回手势:

        override func viewDidLoad() {
            super.viewDidLoad()
            view.backgroundColor = UIColor.purple
            // 保留Pop手势
            navigationController?.interactivePopGestureRecognizer?.delegate = self
            navigationController?.interactivePopGestureRecognizer?.isEnabled = true
        }

    这些代码主要实在UINavigationController上添加

    Swift全屏pop返回手势:

    class CustomNavigationController: UINavigationController {
        override func viewDidLoad() {
            super.viewDidLoad()
            // 1.取出手势&view
            guard let gesture = interactivePopGestureRecognizer else { return }
            gesture.isEnabled = false
            let gestureView = gesture.view
            // 2.获取所有的target
            let target = (gesture.value(forKey: "_targets") as? [NSObject])?.first
            guard let transition = target?.value(forKey: "_target") else { return }
            let action = Selector(("handleNavigationTransition:"))
            // 3.创建新的手势
            let popGes = UIPanGestureRecognizer()
            popGes.maximumNumberOfTouches = 1
            gestureView?.addGestureRecognizer(popGes)
            popGes.addTarget(transition, action: action)
        }
        override func pushViewController(_ viewController: UIViewController, animated: Bool) {
            viewController.hidesBottomBarWhenPushed = true
            super.pushViewController(viewController, animated: animated)
        }
    }

    OC POP手势返回:

    - (void)viewDidLoad {
        [super viewDidLoad];
    
        id target = self.interactivePopGestureRecognizer.delegate;
        UIPanGestureRecognizer * pan = [[UIPanGestureRecognizer alloc]initWithTarget:target action:@selector(handleNavigationTransition:)];
        pan.delegate = self;
        [self.view addGestureRecognizer:pan];
        [self.interactivePopGestureRecognizer setEnabled:NO];
    }
    
    - (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer {
        return self.childViewControllers.count == 1 ? NO : YES;
    }
  • 相关阅读:
    《花好月圆夜》
    关于Url重写
    三大WEB服务器对比分析(apache ,lighttpd,nginx)
    APC 和 Memcache 有什么区别,哪个更好效率更高?
    URL优化不仅仅是静态化重写URL
    php中的静态变量和动态变量的区别框架加载变量时运用
    msicuu.exe (msizap.exe),程序的作用
    显示器接口针脚定义(Dsub15)
    图文教程:DIY全屏开机LOGO详解
    ASP.NET中的媒体播放
  • 原文地址:https://www.cnblogs.com/HJQ2016/p/5966559.html
Copyright © 2011-2022 走看看